2つのメンバー関数に問題があり、そのうちの1つは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
(0,0)
それにもかかわらず、ノードの他のパラメータは異なり、座標のみが上記のとおりです。
理由は何ですか?
私のコピーコンストラクターを編集します:
BoardNode::BoardNode(const BoardNode & other) :
_mNodeType(other._mNodeType),
_coordinates( other._coordinates ),
_neighboursVector( other._neighboursVector) {}