有人告诉我,如果您在类中有引用,则必须创建该类的新
版本,而不是到处复制它们。为什么?因为当您分配一个引用时,您实际上是在引用原始事物,所以您实际上并没有做任何事情。问题是,为什么它仍然有效?
我的游戏对象包含对网格的引用,我可以很好地复制它们,它们都在正确的位置和所有地方渲染。
最佳答案
复制构造函数正在初始化一个新的引用,这很好。
您不能做的是稍后重新分配引用。
这是一个示例,假设您的类可以通过提供 Mesh
来构造,它保留对它的引用:
Mesh mesh;
GameObject o1(mesh); // OK: initialising reference o1.mesh
GameObject o2(o1); // OK: initialising reference o2.mesh
o1 = o2; // Error: attempt to reassign reference o1.mesh
(假设您没有定义复制赋值运算符。如果您定义了,那么它将不得不单独保留引用。)
关于c++ - 为什么 "copying"复制构造函数中的引用仍然有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9117970/