クラスを継承した場合,コンストラクタとデストラクタの呼び出される順序には注意が必要である.コンストラクタとデストラクタの呼び出しは,以下の順番となる.
- 親クラスのコンストラクタ
- 子クラスのコンストラクタ
- インスタンスの主な処理
- 子クラスのデストラクタ
- 親クラスのデストラクタ
- コンパイル & 実行
$ g++ main.cpp
$ ./a.out- 出力
Base::Base()
Derivative::Derivative()
void Base::x()
void Derivative::f()
Derivative::~Derivative()
Base::~Base()