상속관계인 Class를 Derived Class, Base Class라고 할때, DerivedClass를 생성할 때 생성자의 순서는 다음과 같다.
- Derived class의 초기화된 변수들
- Base class의 초기화된 변수들
- Base class의 생성자
- Derived class의 생성자
따라서, override 된 함수들을 Base class의 생성자에 넣게 되는 경우에는 Derived class의 생성자에서 호출이 될 수 없다.
이때에는 Init() 또는 Initialized() 함수를 따로 구성시켜서, 생성 이후에 재초기화를 시켜줘야지 된다.
이런 경우를 two-phase construction 이라고 부른다.