0

状況を考えてみましょう。

struct Top
{
  int x;
};

struct Left : public Top
{};

struct Right : public Top
{};

struct Bottom : public Left, public Right
{
  void foo()
  {
    Left::x; // Normal compiled
  }

  void goo()
  {
    Left::Top::x; // error: ‘Top’ is an ambiguous base of ‘Bottom’ // Why --- ????
  }
};

関数goo()コンパイラであいまいさエラーが発生する理由を誰かが説明してもらえますか?

void foo()を作成して、修飾子Left::xでxにアクセスする場合を示します。あいまいさはないので、より詳細なアクセス修飾子Left :: Top::xを使用するのはなぜですか。あいまいさが表示されますか?

4

1 に答える 1