2011-04-26 7 views
11

私は2つのインタフェースから継承する必要があります。どちらのインタフェースも同じメソッドを持ち、どちらの場合もまったく同じものを実行する必要があります。このコードは正しいですか?私は何らかのプロキシクラスのためにこれを必要とします。答えをありがとう。同じメソッドで複数のC++インタフェースを継承する

class InnerInterface { 
    virtual int getID() const = 0; 
    //... 
}; 
class OuterInterface { 
    virtual int getID() const = 0; 
    //... 
}; 
class Foo : public InnerInterface, public OuterInterface { 
    virtual int getID() const; 
    //all abstract methods 
}; 
+8

メソッドは 'virtual'でしょうか? –

+0

もちろん。修正されました。 –

+0

素敵な質問 - 私は素敵なシンプルなダイヤモンドの継承を考えていたので(仮想継承を使う)、これではわかりません。スコープ解決を使用して、継承された2つのメソッドを同じ名前で別々にオーバーライドすることもできますが、これはコードが重複していることを意味します。 – Steve314

答えて

7

はい、これは正しいです。単一のgetID()メソッドは、両方の仮想メソッドをオーバーライドできます。

+1

これについていくつかの情報を提供して、結果はどうなるでしょうか?ありがとう! – wegginho

関連する問題