C++コードをコンパイルしようとすると、タイトルに記載されているエラーが発生します。私はここで間違っていたことを理解するのに困っている。コンパイルエラー: ' - >'の基本オペランドに非ポインタ型 'トークン'があります
コンパイラには、bool operator==(Token)
関数の実装に問題があります。私はこれがオペレータを過負荷にする方法だと思った。
コンパイラが私に嫌いな理由の手がかり this->terminal
または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));
}
「これ」は「t」ほどではありません。 – chris
比較演算子の標準的な宣言は 'bool operator ==(const Token&t)const;'(2つの追加の 'const'指示を追加したもの)です。 –
@ qreamこれがあなたの質問に答えた場合は、答えを受け入れること自由に感じて;) – Qix