これにより、参照によって戻ることをどういうわけか認識しており、混乱しました。
BoardNode
クラスのpublic フィールドへの参照を返す関数がありますstd::vector<BoardNode> _neighboursVector
。
Board
を保持するクラスもありますstd::vector<BoardNode>
。
私のメンバー関数は次のようになります:
const std::vector<BoardNode>&
Board::getNeighboursVector(unsigned int x, unsigned int y) const
{
BoardNode node = this->getBoardNode(x, y);
//...
node._neighboursVector.push_back(...);
//...
return node._neighboursVector;
}
戻り行でデバッグしているときに、ベクトルで正しい値を取得しますが、この関数の外では空のベクトルを取得します。なんで ?
std::vector<BoardNode> v = b.getNeighboursVector(5,5);
編集
getBoardNode
定義
const BoardNode & Board::getBoardNode(unsigned int rowIdx, unsigned int colIdx) const
{
//...
}
BoardNode & Board::getBoardNode(unsigned int rowIdx, unsigned int colIdx)
{
//...
}