#include <iostream> using namespace std; class Foo { public: Foo() { cout << "Foo constructor" << endl; } ~Foo() { cout << "Foo destructor" << endl; } }; class Bar : public Foo { public: Bar() { cout << "Bar constructor" << endl; } ~Bar() { cout << "Bar destructor" << endl; } }; class Zoo : public Bar { public: Zoo() { cout << "Zoo constructor" << endl; } ~Zoo() { cout << "Zoo destructor" << endl; } }; int main() { Zoo zoo; return 0; }
Foo constructor
Bar constructor
Zoo constructor
Zoo destructor
Bar destructor
Foo destructor
追記
「Zoo zoo();」と宣言したら、警告が出て何も出力されず。
どういう動作になるんだろう?
「Zoo zoo = Zoo();」は正常動作。