我不知何故意识到通过引用返回这让我感到困惑。
我有一个函数,它返回对类的公共字段的引用BoardNode
,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)
{
//...
}