연산자 오버로드(겹지정)는 실제로 일어나는 일을 위장합니다.
겹지정의 + 연산자는 사실 왼쪽의 객체에서 호출되고 오른쪽의 객체를 인수로 취하는
구성원 함수일 뿐입니다.
컴파일러는 + 연산자를 다음과 같은 시각으로 처리한다.
[코딩]
at2 = at1 + 3;
[컴파일러 시각]
at2 = at1.operator+(3);
하지만 정수가 왼쪽이 있다고 생각해보면 답이없습니다. 코딩이 불가능하다는 뜻입니다.
이것을 해결하는 방법이 프렌드입니다.
friend를 살펴보시면 답이 있을것입니다.
경선->건강 님이 쓰신 글 :
: source에 설명 참조했고요, *.zip 파일로 올렸습니다.
:
: -> zip 파일 말고, source 파일로 따로 두 개 올렸더니 에러가 났습니다. 고쳐주세요.
|