나는 이것으로 약간의 어려움을 겪고있다. 내 개인 프로젝트에이 연산자를 오버로드해야한다고 판단했습니다. 다음 라인을 사용하여 필요합니다 :연산자 오버로드 (==)
플레이어 클래스에는 하나의 특정 데이터 멤버 인 mInitiative를 계산하기위한 여러 데이터 멤버가 있습니다. 이것은 if 조건에서 검사하고 싶은 것입니다. 여기를 오버로드에서 내 시도이다 : 그것은 충분히 잘 보인다
bool operator==(const Player& lhs) const {
return mInitiative == lhs.mInitiative;
}
,하지만 오류가 지속됩니다. 특정 플레이어 데이터를 정수 (이 경우 0)와 비교하려면 어떻게해야합니까? 내 접근 방식의 실수는 무엇입니까?
는 편집이 : 나는 시도했다 :
bool operator==(const Player& lhs, int rhs) const {
//...
}
그러나 컴파일러는 함수에 대한 너무 많은 매개 변수가 말했다. 왜 이런거야? 두 가지를 할 수 없어야합니까?
감사합니다.
어떤 오류가 발생 했습니까? – 0x499602D2
클래스 외부의 개체를 직접 수정하지 않는 연산자를 선언하면 훨씬 더 명확 해집니다. – theunamedguy
연산자는'Player' 타입의 오른쪽을 취하지 만'int'를 전달합니다. – 0x499602D2