제가 ROOT라는 C++ 라이브러리 상에서 돌아가는 라이브러리를 만들고 있는데요,
이 ROOT에는 기본 클래스로 만물의 부모 역활을 하는 TObject, 또 모든 컨테이너의 부모 역활을 하는 TCollection,
그리고 여러 컨테이너 클래스들의 이터레이터 부모 역활을 하는 TIterator, 이들 이터레이터들을 통일적으로
다룰 수 있게 해 주는 랩퍼 클래스인 TIter등이 있습니다.
class TObject { ...};
class TCollection : public TObject { ... };
class TIter {
public:
TIter(const TCollection *col);
// ...
private:
TIterator *fIterator;
};
TCollection의 파생 클래스로 TList, TObjArray, 등등이 있구요.