Compiler Error C2798


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at Compiler Error C2798.

super::member' is ambiguous

Multiple inherited structures contain the member you referenced with super. You could fix the error by either:

  • Removing B1 or B2 from the inheritance list of D.

  • Changing the name of the data member in B1 or B2.

The following sample generates C2798:

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