我有一个class ObjectManager
,有一个成员变量
std::vector<std::vector<std::shared_ptr<BoardPiece>>> gameMap_;
如在指向BoardPiece
的类实例的共享指针的矩阵中。该矩阵初始化为主要包含nullptr
。现在,正如这些变量的名称所暗示的,玩家可能稍后会在BoardPiece
上放置一个gameMap_
。
但是,当我尝试对矩阵进行赋值时,>
GOManager_->getGameMap().at(unsigned(c.x())).at(unsigned(c.y())) = GOManager_->getTileInPlay();
其中
c
是游戏板上图块的坐标,什么也没有发生。当我查看QT Creator中的调试器时,在应该进行分配的位置仍然有一个空指针。
[在这种情况下可能导致分配失败的原因是什么? BoardPiece
知道自己的外观,这意味着它包含动态创建的QPixmap
。 BoardPiece
有一个复制构造函数,所以这不应该成为问题。
我有一个ObjectManager类,它具有成员变量std :: vector <:vector>>> gameMap_;就像在指向...
未将图块放入矩阵的原因实际上是,我没有返回对gameMap的引用,而是返回了所述容器的副本。