Ví dụ,Khi toán tử dereference (*) bị quá tải, việc sử dụng * điều này có bị ảnh hưởng không?
class Person{
string name;
public:
T& operator*(){
return name;
}
bool operator==(const Person &rhs){
return this->name == rhs.name;
}
bool operator!=(const Person &rhs){
return !(*this == rhs); // Will *this be the string name or the Person?
}
}
Nếu *this
kết thúc lên dereferencing this
đến một string
thay vì một Person
, là có một cách giải quyết duy trì việc sử dụng *
như một toán tử tham chiếu bên ngoài lớp học?
Sẽ là một trở ngại nếu tôi không thể quá tải *
mà không từ bỏ việc sử dụng *this
.
Quá tải áp dụng cho đối tượng Person. Nhưng 'this' là con trỏ * người *. – Galik
@Galik nhận xét này phải là câu trả lời (được chấp nhận). – YSC