第7回はオーバーライドという機能です オーバライドというのは 継承クラスで親クラスと同名の関数を定義でき、 関数の仕様を上書きする方法です (オーバロードと混同しないよう注意) オーバライドの説明に入る前に 継承クラスのコンストラクタ、デストラクタがどのように 呼ばれるのか見てみましょう #include <iostream> using namespace std; class Parent { public: // コンストラクタ Parent() { cout << "親クラスコンストラクタが呼ばれました" << endl; } // デストラクタ ~Parent() { cout << "親クラスデストラクタが呼ばれました" << endl; } }; class Child: public Parent { public: // コンストラクタ Child() { cout << "子クラスコンストラクタが呼ばれました" << endl; } // デストラクタ ~Child() { cout << "子クラスデストラクタが呼ばれました" << endl; } }; // main関数(クラスの外部) int main() { Child ch; cout << endl; cout << "なんか処理する" << endl; cout << endl; return 0; } 親クラスと子クラスのコンストラクタと 親クラスと子クラスのデストラクタが 両方呼ばれることに気づくはずです (さらにいうとデストラクタはコンストラクタの逆順(子→親)に呼ばれています) Java,C#などをやっている人は 派生クラスだけ呼ばれなくて気持ち悪いと思うかもしれませんが C++は両方よばれます