519
2012-12-16 11:07:32
0
멤버로의 연산자 오버로딩은 가능하나 실 사용이 불가능하다고 보셔야 합니다.
[a][b]도 사실은 앞의 [a]를 먼저 연산하고 [b]를 연산을 하게 됩니다.
예를 들어
Board test; 선언 후
test[1][2] = 10; 이렇게 연산을 한다면 순서는
test[1]을 먼저 하고 그 다음에 test[2] 하고 대입연산을 하는거죠.
그럼 일반적인 배열 연산에서 test[1]은 Board & operator [] (int) 함수를 호출하고
그 다음 test[2] 또한 Board & operator [] (int) 함수를 호출할텐데
전자 후자 모두 동일한 멤버 함수를 호출하게 되죠. 런타임 도안 함수 입장에선 이게 앞쪽 배열 연산인지 뒤쪽 배열 연산인지 사실상
구분이 불가능해지기 때문에 실 사용이 불가능 합니다.