编译器错误 C2798

“super::member”不明确

多个继承的结构包含使用 super 引用的成员。 可以通过以下任一方法修复该错误:

  • 从 D 的继承列表中删除 B1 或 B2。

  • 更改 B1 或 B2 中的数据成员的名称。

以下示例生成 C2798:

// C2798.cpp
struct B1 {
   int i;
};

struct B2 {
   int i;
};

struct D : B1, B2 {
   void g() {
      __super::i = 4; // C2798
   }
};