第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#などをやっている人は さて、本題に入りたいと思います // オーバーライド #include <iostream> using namespace std; class Parent { public: void Show() { cout << "親クラスShow" << endl; } }; class Child: public Parent { public: // オーバーライド void Show() { cout << "子クラスShow、オーバーライド" << endl; } }; // main関数(クラスの外部) int main() { Parent pt; Child ch; pt.Show(); ch.Show(); return 0; } Parent型の変数ptのほうのShow関数の呼び出しは親クラスのほう 次回は仮想関数によるポリモーフィズムです。 |