Поделиться через


Ошибка компилятора C2798

"super::member" неоднозначно

Несколько унаследованных структур содержат элемент, на который ссылается супер. Вы можете исправить ошибку, выполнив следующие действия.

  • Удаление B1 или B2 из списка наследования D.

  • Изменение имени элемента данных в B1 или B2.

Следующий пример приводит к возникновению ошибки C2798:

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

struct B2 {
   int i;
};

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