|
님이 예를 드신 것을 보니 Child가 포인터내요.
클래스 내에서 오버로딩된 연산자들은 포인터가 아니라 객체에 대해 작동합니다.
따라서 Child[0]이 아니라 (*Child)[0] 이런식이 되어야겠죠.
초보자 님이 쓰신 글 :
: 기반 class 에서 [] 연산자를 다음과 같이 오버로딩 했습니다
:
:
: teamplate <class T> class Parent
: {
: public:
: T* operator [](int Number)
: {
: ...어쩌구 저쩌구
: }
:
:
: .....
: };
:
:
:
: class Child : public PArent<Child>
: {
: };
:
:
: 그런데
: Child->operator [](1)->어쩌구함수()
: 이러면 작동 되는것이
: Child[1]->어쩌구함수()
: 하면 에러가 납니다
:
:
: 왜그런걸까요?? 도움 부탁드립니다..
:
|