STL보면 컨테이너 클레스 내부에 이터레이터가 Inner 클레스 형태로 선언되 있자나요
클레스 형태로 구현하고 템플릿화 시킬려고 하는데
컴파일러 님께서 inner클레스에 private멤버에 접근 할수 없다고 에러를 띄우네요...
리스트 멤버 함수중에 void Insert(iterator itr, int data) <<요놈이 내부에서 이터레이터 클레스의
private 멤버중에 노드 포인터를 가져다 쓰긴 하거든요...
그런데 public의 inner 클레스이면 inner클레스 내부의 private멤버도 다 접근 가능하다 생각해서 저렇게 쓴건데
왜 에러가 나는지 이게 이해가 잘 안가네요...
참 골치아픈게... 클레스화 단계에서 바로 템플릿화 하면 또 문제가 안생기네요;; 템플릿의 객체 생성시기와 관련있는건지 inner클레스의 사용방법에 문제가 있는건지 알 수가 없네요;
그냥 글만보면 \'아니다 자바랑은 다름\' 이라고 말하고 싶긴한데 리플을 보니까 너가 궁금한게 뭔지 모르겠다
그거 이너클래스 아님
이터레이터는 클래스로 따로 구현되 있고, 각 컨테이너에 typename으로 정의되있음
C++에 inner 클래스는 흠좀무
음? 그런거에요? 전 STL에서 list<int>::iterator itr 이라고 선언하길레 클레스 내부에 클레스가 있는형태라고 생각했었는데 틀렸나보네요
횽들 땡큐욤 STL컨테이너 좀더 공부하고 다시 만들어봐야겠네요