#include <iostream> using namespace std; // 抽象クラス(基底クラス)−−−−−−−−−−− class hello{ private: char *s; public: hello(){} virtual ~hello(){} //仮想デストラクタ [virtual デストラクタ] virtual void hello_world()=0; //純粋仮想関数 [virtual メンバー関数=0;] // 純粋仮想関数を宣言するとそのクラスは「抽象クラス」になる。 // 抽象クラスのインスタンスを作ることができない。 }; void hello::hello_world(){ s = "hello world"; cout << s <<endl; } // 派生クラス(継承クラス)−−−−−−−− class hello2 :public hello{ public: hello2():hello(){}; void hello_world(); }; void hello2::hello_world(){ cout << "hello c++" <<endl; } int main(){ hello2 Output2; /* 抽象クラスのインスタンスを作ることができない。ここに hello Output; といれるとエラーになる。 */ hello *p; p = &Output2; p -> hello_world(); return 0; }
実行結果
hello c++