-4

我的代码有一个有趣的问题......在调试模式下运行(Eclipse/CDT)......我所有的瓷砖似乎都将它们的墙布尔设置为 true?有人知道wtf正在发生吗?

代码,完全 MVC 和几乎正确的 OO(我认为),在这里:

main.cpp http://pastebin.com/f14kmfap

gridworld.h http://pastebin.com/vCmzxzrj

gridworld.cpp http://pastebin.com/jKKRFE9V

我怀疑它与这里的这个片段有关:

Tile::Tile(bool w) {
        wall = w;
        event = false;
        eventText = "";
}

以及我如何使用它来生成地图:

map[1][2] = new Tile(false);
4

2 回答 2

3

首先,Tile map[8][8];, 将默认构造图块。布尔wall设置为真。

在您使用的 Map 构造函数中Map::map[r][c] = new Tile(),右侧是 a Tile*,左侧是 a Tile分配给 map的正确语法是map[r][c] = Tile();, 或map[6][4]=Tile(false);

于 2012-07-09T04:07:11.980 回答
1

new Tile()在许多使用默认 ctor 的地方使用Tile. 您的内部默认 ctorTile正在初始化wall = true;

于 2012-07-09T03:45:24.290 回答