#include <iostream.h> /* 仮想関数 */
class C1 // 基本クラス C1
{ public: void func1() { cout << "果物="; } // 普通のメンバ関数
virtual void func()=0; // 純粋仮想関数
};
class C2 : public C1 // 派生クラス C2 (基本クラスは C1)
{ public : void func(){ cout << "りんご" << endl; } // オーバーライド
};
class C3 : public C1 // 派生クラス C3 (基本クラスは C1)
{ public : void func(){ cout << "ミカン" << endl; } // オーバーライド
};
void main()
{ C1 *p2, *p3; // C1 型のポインタ変数 p2 と p3 を宣言
C2 OB2; // C2 のオブジェクト OB2 を宣言
p2=&OB2; // p2 にオブジェクト OB2 のポインタを代入
p2->func1(); // C2 にコピーされた func1() の呼出し 果物=
p2->func(); // C2 で追加した func() の呼出し りんご
C3 OB3; // C3 のオブジェクト OB3 を宣言
p3=&OB3; // p3 にオブジェクト OB3 のポインタを代入
p3->func1(); // C3 にコピーされた func1() の呼出し 果物=
p3->func(); // C3 で追加した func() の呼出し ミカン
char s; cin >> s;
}
|