即使构造函数传递为false,Boolean也会初始化为true

时间:2012-07-09 03:39:22

标签: c++ model-view-controller oop

我的代码有趣的问题...在调试模式下运行(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);

2 个答案:

答案 0 :(得分:3)

首先,Tile map[8][8];将构建tile默认值。将bool wall设置为true。

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

答案 1 :(得分:1)

您在使用默认ctor new Tile()的许多地方使用Tile。在Tile的默认ctor中,您正在初始化wall = true;