- 31 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:06:44 ]
- >>29
仮想関数ってやつだ。 class Base { public: virtual ~Base() {} virtual void func() = 0; // 共通のメンバ関数 }; class A : public Base { public: virtual void func() { /* classAの処理 */ } private: /* classAのメンバ変数 */ }; class B : public Base { public: virtual void func() { /* classBの処理 */ } private: /* classBのメンバ変数 */ }; このようにしておいて、たとえば Base* p1 = new A; Base* p2 = new B; とすれば、 p1->func(); // A::funcが呼ばれる p2->func(); // B::funcが呼ばれる となる。 あとはvector<Base*>にすれば万事解決では。
|

|