让我们举一个数组
的例子class Bird{
public:
int a;
};
void fn(Bird& obj){
Bird& arrayList[5];
arrayList[0] = obj;
arrayList[0].a = 10;
}
这里arrayList中的任何更新都不会反映在obj对象中 我的要求是停止复制obj对象。 arraylist应该引用obj;
请不要使用指向Bird的指针数组
答案 0 :(得分:3)
您不能拥有一系列参考文献。
答案 1 :(得分:2)
C ++标准对此非常清楚(见8.3.2和8.3.4)。简而言之,数组是一系列对象。引用不是对象。因此,您不能拥有一系列参考文献。
(由于类似的原因,没有对引用或引用指针的引用:引用是对象的别名,而指针指向对象,但引用是不对象本身。)
答案 2 :(得分:0)
您使用的构造:
Bird& arrayList[5];
不允许。您应该自己存储对象:
vector<Bird> Birds;
Bird arrayList[5];
或指针
vector<Bird*> Birds;
Bird* arrayList;
这是唯一推荐的选项。