Đây là mã của tôi:Không thể tạo toán tử gán mặc định khi một thành viên lớp là một tài liệu tham khảo (trong 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;
}
tôi nhận được lỗi:
"non-static reference member ‘std::string& NO::nameValue’, can’t use default assignment operator"
Tại sao tôi không thể tái -gán đối tượng với một thành viên tham chiếu khi tôi có thể thực hiện tương tự với một kiểu tích hợp?
cảm ơn
Tôi cảm thấy như thế này sẽ hoạt động nhưng ... với ngữ nghĩa gì? những gì chúng ta phải mong đợi? 'x.nameValue' phải trỏ đến' y.nameValue' OR 'x.nameValue' phải sao chép giá trị' y.nameValue'? (sẽ giống như việc thực hiện 'p = q') –