연산자 operator(c++)
조회수 812회
예제를 가지고 검색해가면서 공부하려 했는데
오류가 뜨더라구요
#if 1
#include <iostream>
using namespace std;
class A {
int aa;
public:
A() {
aa = 10;
}
int operator+(int x) {
return aa - x;
}
int operator+(A &r) {
return aa - r.aa;
}
int operator-(int x) {
return aa + x;
}
friend int operator+(int x, A &r) {
return r.aa - x;
}
friend int operator-(int x, A &r) {
return r.aa + x;
}
int operator++() {
return aa--;
}
};
int main() {
A a;
A b;
cout << a + 10 << endl;
cout << a - 10 << endl;
cout << 10 + a << endl;
cout << 10 - a << endl;
cout << a + b << endl;
cout << ++a << endl; // a=a+1
cout << a++ << endl; // a / a=a+1
}
#endif
매개변수 개수를 맞춰주려고 friend함수를 사용한 것까진 이해가 가는데 매개변수 리스트에 주소반환 연산자가 붙은 것들은 어떻게 동작하는지, 또 왜 오류가 발생하는 건지 도무지 모르겠어요.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
댓글 입력