我有 2 个成员函数的问题,其中一个是 const 返回一个 const:
const BoardNode & Board::getBoardNode(unsigned int rowIdx, unsigned int colIdx) const
{
return _mData[rowIdx*_mNumColumns + colIdx];
}
BoardNode & Board::getBoardNode(unsigned int rowIdx, unsigned int colIdx)
{
return _mData[rowIdx*_mNumColumns + colIdx];
}
过了一会儿,我使用了代码:
// where this is a Board holding Nodes in std::vector
BoardNode nodeToAddAsNeighbor = this->getBoardNode(x1+ x, y1+ y);
无论y1
, y
, x
,的值是什么x1
,我总是返回带有 coords 的节点(0,0)
。
然而,节点的其他参数是不同的,只是坐标如上所述。
知道为什么吗?
编辑 我的复制构造器:
BoardNode::BoardNode(const BoardNode & other) :
_mNodeType(other._mNodeType),
_coordinates( other._coordinates ),
_neighboursVector( other._neighboursVector) {}