【发布时间】:2016-10-05 11:56:26
【问题描述】:
所以我有这个类,它在我的一些对象生成后保存它们。我将带您了解它们:
dungeon 是指向 Dungeon 类对象的指针,该对象在名为 dungeonLayers 的向量中保存了一些 DungeonLayers,然后该向量保存了 Chambers 名称的向量(地牢已填满)
当我运行这段代码时:
Game::Game(std::vector<Enemy>* e, Dungeon* d, Hero* h) {
enemies = e;
dungeon = d;
hero = h;
DungeonLayer *currentLayer = dungeon->dungeonLayers.at(0);
Chamber *currentChamber = currentLayer->chambers.at(0);
};
currentLayer 和 currentChamber 都指向 NULL,但是当我在我放在那里的断点处查看当地人时,dungeonLayers.at(0) 中充满了“地牢”中的 DungeonLayer。为什么我的 currentLayer 指向 NULL?
我是 C++ 新手,所以这就是我问这个问题的原因,我可能会在这里做一些非常明显的错误。
【问题讨论】:
-
你在我希望的分配之后设置断点?您正在经历的屏幕截图将适合此处。
-
尝试:DungeonLayer * cl = &(dungeon->dungeonLayers[0]);
-
@Jelmer 如果可行,您发布的代码可能无法编译,更不用说运行了。
-
minimal reproducible example.... 来吧,你已经在这里一年了!
-
只是一些小事,通常最好在类成员变量前面加上
m_这样的东西,它对可读性有很大帮助,你也应该使用初始化列表和后面的分号您的构造函数定义不是必需的。