【发布时间】:2010-10-01 16:47:37
【问题描述】:
我有一个类,它存储对其父级的引用,该引用在构造函数中传递。如果我尝试复制一个实例,我会收到一个错误“错误 C2582:'operator =' 函数不可用”,可能是因为引用不可分配。
有没有办法解决这个问题,或者我只是将变量更改为指针而不是引用?
例如(过于简单但我认为有重点):
class MyClass
{
public:
MyClass(OtherClass &parent) : parent(parent) {}
private:
OtherClass &parent;
};
MyClass obj(*this);
.
.
.
obj = MyClass(*this);
【问题讨论】:
-
可能编译器混淆了相同的参数和成员名称?
-
引用总是不变的。一旦你给它赋值(在你的构造函数中),就不可能改变它的值。所以,如果你想支持做作,你把它改成一个指针。
标签: c++