// 抽象クラスはインスタンスを作れないのは分かっているが、 // ポインタは OK なのか。その確認。 #include <iostream> using namespace std; // 抽象クラス class Basic { public: int a; Basic( ) { a = 0; }; virtual ~Basic( ) {}; virtual void foo( ) = 0 ; // 純粋仮想関数 }; // 派生クラス1 class Sub : public Basic { public: // overriding void foo( ) { cout << "I'm Sub" << endl; } }; // 派生クラス2 class Sub2 : public Basic { public: // overriding void foo( ) { cout << "I'm Sub2" << endl; } }; int main( ) { // Polymorphism Basic *pB = new Sub; Basic *pB2 = new Sub2; pB->foo( ); pB2->foo( ); delete pB; delete pB2; return 0; } /* OK です。こればできないと Polymorphism もあったものではありません。 */ // end of file