【发布时间】:2015-06-12 21:07:18
【问题描述】:
所以我想通过调用构造函数来创建一个节点列表,并将节点的地址推送到一个向量(通过引用传递)。我从下面的代码中得到了错误的结果。
#include <iostream>
#include <vector>
using namespace std;
class Node{
public:
//Constructor
Node(int id, vector<Node*> & listNode){
this->id = id;
listNode.push_back(this);
}
int id;
};
int main(){
vector<Node*> listNode;
for(int i=0; i<5; i++){
Node A(i, listNode);
}
for(int i=0; i<5; i++){
cout<<listNode[i]->id;
}
}
我期待的输出是:01234
但我得到了 44444。
有没有想过这个错误?
【问题讨论】:
标签: c++ vector pass-by-reference