我有2个成员函数从哪一个是常量返回一个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) {}
尽量缩小这个问题了。 –
你的副本构造函数只是做了编译器提供的人做的事情,不要明确地定义它。 – GManNickG
您确定'_mData'中的元素设置正确吗?你如何构建它们? – molbdnilo