2017-07-16 37 views
0

私は、クラスごとに別々の関数を作ることなく、複数のクラスで同じ関数を呼び出す方法を探しています。C++:複数のクラスの同じ関数を呼び出す

例:

class A{ 
public: 
void update(); 
} 

class B{ 
public: 
void update(); 
} 

今私はclass Aclass B両方を取り、update()関数を呼び出すことができます関数を作成します。私はスタックオーバーフロー/ Googleのソリューションを探していますが、何も見つけることができません。私はテンプレートを見ていましたが、何かを見つけることができませんでした。私のプロジェクトでは、それぞれフレームごとに呼び出す必要がある関数update()を持つ5つまたは6つのクラスがあります。私は共通の基本クラスを使用していますが、update()関数は派生クラスに配置する必要があります。私は最後のプロジェクトで同じ問題を抱えていて、これを理解できません。

+3

'テンプレート空隙callUpdate(T&OBJ){obj.update()。 } ' –

+2

仮想関数について聞いたことがありますか? –

+0

ありがとうございました!これは私が探していたものでした。ヘッダーファイルのテンプレートをもっと調べるだけです。 – Mseb

答えて

2

基本クラスに純粋な仮想更新メソッドを定義できないのはなぜですか? (あるいはこれだけ仮想メソッドを有する第2のベースクラス/インタフェース。)

class IUpdate 
{ 
    public: 
    virtual void update() = 0; 
} 

class A : public IUpdate 
{ 
    public: 
    void update(); 
} 

とクラスBの同じ

+1

この回答はなぜ投票停止ですか?最高のソリューションは、純粋な仮想関数を使用してインタフェースを作成することです。 – Jeremy

+0

ありがとう、私はこれをテンプレートよりも論理的に見ています。私はそれが働いたときに私は解決として設定されます。 – Mseb

+0

ありがとうございました!私は別のクラスのために同じ機能をコピーする頭痛の多くを保存しました。 – Mseb

関連する問題