2016-04-02 16 views
0

こんにちは私は基本クラスから派生したクラスのコレクションを持っています。 すべてのクラスは、このような仮想ボイドに設定されたメソッドを使用します。特定の仮想メソッドのためにパラメータを追加する

virtual void do_method(cPlayer&, cPlayer&) = 0; 

しかしワン特定のクラスのために、私は、そのクラスに同じdo_methodを使用したいが、私はそれは例えばポインタのベクトルとなり、他のパラメータを持っていると思います。

virtual void do_method(cPlayer&, cPlayer&, vector<cBase*>); 

私はC++の最新バージョンを使用していないとして、オーバーライド機能せずにこれを行う方法はありますし、これは研究したときに、私が出会ったものです。

+1

は、どのようにそれは、両方の「同じ」方法であると同時に、別のパラメータを持つことができますか? – jtbandes

+0

@jtbandesあなたは、3つのパラメータで新しいdo_methodを作成する必要があると言っていますか?そしてその1つの空白のための2つのパラメータでdo_methodを残しますか? – User5916261

答えて

0

あなたはおそらくあなたの変更された1を通じてコール仮想関数にしたい、のようなもの:

void do_method(cPlayer& p1, vector<cBase*>& v) { 
    for (auto p: v) 
     do_method(p1, *p); 
} 
関連する問題