Compiler Error C2798

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

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  
   }  
};  

Show: