class NameObject
{
public:
NameObject(string& name,const int & value);
....
private:
string& nameValue;
const int objectValue;
};
考虑下面的情况:
string newDog("per");
string oldDog("sat");
NameObject p(newDog,2);
NameObject s(oldDog,36);
p=s;
p=s是调用copy assignment操作的,而它做的是安值传递的, 将一个引用赋给另一个引用(编译不通过)。
将一个const变量给一个const变量(编译也不通过),面对这个难题C++不能进行编译,如果一定要做P=S ,自己就要重写 copy assignment("NameObject &operator =()") 操作了
阅读(587) | 评论(0) | 转发(0) |