[완료] operator []의 오버로딩을 이용해서 classname["key1"]["key2"]를 구현하는 방법.
글쓴이: Jun92 / 작성시간: 목, 2007/08/30 - 12:42오후
class arrayclass { private: int array[10][10]; public: }
위와 같이 2차원 배열을 가지고 있는 변수 값을
클래스의 이름을 곧바로 이용해서
arrayclass ac; int nRet = ac[2][3]; // arrayclass::array[2][3]이 리턴.
이런식으로 오버로딩이 가능하게 하고 싶은데요.
operator[] overloading을 어찌해야할지 감이 안 잡히네요.
의견 부탁드립니다.
Forums:
http://www.devarticles.com/c/
http://www.devarticles.com/c/a/Cplusplus/Operator-Overloading-in-C-plus/2/
이 글이 도움이 되길 빌겠습니다. 약간 꽁수 같은 방법이 되겠습니다. ( 즉 2차원 array 식으로만 접근이 되게 보이겠지요 )
조금 불편하시면 만드실 클래스를 쓸때만 macro 를 이용하는 것도 방법이겠습니다. ( [2][3] = [maxcolumn * 2 + 3] 의 성질을 이용하여 )
Neogeo - Future is Now.
Neogeo - Future is Now.
어떻게 설명을 해
어떻게 설명을 해 드려야 하나 ..
간단하게 2차원 배열 오버로딩이 아니라
연잔자[]를 오버로딩한 클래스를 가지는 클래스에서 연산자[]를 다시 오버로딩 해주시면 됩니다.
즉, 외쪽 클래스에서 오버로딩된 연산자[] 가 리턴하는 값이 안쪽 클래스를 리턴하게 되면 거기에
오버로딩 되어 있는 연산자[]가 불리게 됩니다.
아.. 이해했습니다.
아.. 이해했습니다. 감사합니다. ^^
=============================
야후!
댓글 달기