Например,
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?
}
}
Если *this заканчивается разыменование this до string вместо Person, существует ли обходной путь, поддерживающий использование * в качестве оператора разметки вне класса?
Было бы довольно затруднительным, если бы я не мог перегружать *, не отказываясь от использования *this.