我被告知如果你在课堂上有一个参考,你必须创建该类的new
版本,而不是复制它们。为什么?因为在分配引用时实际上是指原始的东西,所以你实际上并没有做任何事情。问题是,为什么它仍然有效?
我的GameObjects包含对Meshes的引用,我可以将它们复制好并且它们都在正确的位置和所有内容中呈现。
答案 0 :(得分:4)
复制构造函数初始化一个新的引用,没问题。
您可以做的是稍后重新分配参考。
以下是一个示例,假设您的类可以通过提供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
(假设您没有定义复制赋值运算符。如果这样做,则必须单独保留引用。)