は私がコンパイルされません。次のプログラムを持っている:C++多重継承 - 基底クラスで同じメソッドが異なる引数を使って
class Interface1
{
virtual void f() = 0;
};
class Interface2
{
virtual void f(int i) = 0;
};
class Interface3 : public Interface1,
public Interface2
{};
class C : public Interface3
{
virtual void f() {}
virtual void f(int i) {}
};
int main()
{
Interface3* inter = new C();
inter->f(); // Error
}
間違っていますか?メソッドが異なる引数型を持つかどうかは関係ありませんか?
エラー:メンバー 'F' の要求は
曖昧です。注:候補者は次のとおりです:仮想無効インターフェース1 :: F()
...
注:仮想無効インターフェイス2 :: F
_これは間違っていますか?_ 'enter code here'です。あなたの質問を修正してください。ありがとうございました。 – skypjack
ビルドエラーに関する質問を投稿するときは、常に質問本体に実際のエラーを含めてください。あなたの質問を編集して、完全で完全で編集されていないエラー出力(可能性のある情報ノートを含む)を質問に含めてください。次に、コメントなどで表示されるコードのどこにエラーがあるかを指摘します。 [良い質問をする方法を読む](http://stackoverflow.com/help/how-to-ask)を読んで、[最小限の完全で検証可能な例](http:// stackoverflow。 com/help/mcve)。 –
問題は 'class Interface3'(**' {}; **)ではなくtypo ** '{}:' **の宣言にあります。 –