【发布时间】:2014-10-28 17:12:42
【问题描述】:
这是我的代码:
class NO {
public:
NO(std::string& name):nameValue(name){};
private:
std::string& nameValue; // this is now a reference
};
int main(){
int b=10,c=20;
int& d=b;
d=c;
std::string p="alpha", q="beta";
NO x(p), y(q);
x=y;
return 0;
}
我得到错误:
"non-static reference member ‘std::string& NO::nameValue’, can’t use default assignment operator"
当我可以对内置类型执行相同操作时,为什么我不能使用引用成员重新分配对象?
谢谢
【问题讨论】:
-
我觉得这应该可以工作,但是......有什么语义?我们必须期待什么?
x.nameValue必须指向y.nameValue或x.nameValue必须复制y.nameValue的值? (与p=q相同)
标签: c++ reference default variable-assignment operator-keyword