6
这里是我的代码:?无法生成时,类成员(在C++)参考默认赋值运算符
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”的做法是一样的) – 2014-09-04 08:54:50