Otrzymuję błąd wymieniony w tytule podczas próby kompilacji mojego kodu C++. Mam problem ze zrozumieniem, co zrobiłem źle tutaj.Błąd kompilacji: operand podstawowy parametru "->" ma typ wskaźnika "Token"
Kompilator ma problem z moją implementacją funkcji bool operator==(Token)
. Myślałem, że to jest sposób na przeciążenie operatora.
Jakieś wskazówki, dlaczego kompilator mnie nie lubi, odnosząc się do this->terminal
lub this->lexeme
?
class Token {
public:
tokenType terminal;
std::string lexeme;
Token *next;
Token();
bool operator==(Token &t);
private:
int lexemelength, line, column;
};
bool Token::operator==(Token &t) {
return ((this->terminal == t->terminal) &&
(this->lexeme == t->lexeme));
}
To nie tyle "to", ile "t". – chris
Należy zauważyć, że deklaracja kanoniczna operatora porównania to 'operator bool == (const Token & t) const;' (gdzie dodałem dwa dodatkowe znaki 'const'). –
@qream Jeśli to odpowiedziałeś na twoje pytanie, możesz zaakceptować odpowiedź;) – Qix