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;'(여기서 두 개의 추가'const' 표시를 추가했습니다)라는 것에주의하십시오. –
@ qream 질문에 대한 답변을 얻으려면 언제든지 대답을 수락하십시오;) – Qix