클래스에서 연산자 오버로딩 함수를 만들었습니다. 그리고 클래스의 오버로딩 함수를 호출하는 또 다른 함수를 만들었습니다. 그래서 소스를 컴파일 할 수C++에서 클래스에 연산자 오버로딩 함수를 사용할 수 있습니까?
#include <iostream>
...
class Zealot {
int x;
....
void operator++() {
Zealot s;
s.x = -50;
for (auto i = 0; i < 2; ++i, tail.push_back(s));
}
void Collision() {
...
(*this)++; // Error : C2676
...
}
...
};
Zealot z;
int main() {
z.Coliision();
}
나는 오류 C2676을 가지고 :
나는 주요 기능의 작동에 과부하 기능 내가 메인 함수에서 다음과 같이 썼다 리콜 기능을 사용하고 싶습니다.
잘 처리하려면 어떻게해야합니까? 큰 도움이 필요합니다.
사용자가 정의한 연산자는 '++'의 접두사 형식이므로 '++ (* this);'와 같이 호출 할 수 있습니다. postfix 형식은'int' 유형의 매개 변수 (달리 사용되지 않음)로 구별됩니다. 따라서'void operator ++ (int)'입니다. 'operator ++()'는 일반적으로 증분 된 객체에 대한 참조를 반환해야합니다. –
@ Jerry Coffin 도와 주셔서 감사합니다! 나는 그것을 명심 할 것이다. – starrykss