MSVC, virtual inheritance, warning
От: c-smile Канада http://terrainformatica.com
Дата: 07.08.13 16:10
Оценка:
На коде аналогичном этому (классический diamond inheritance) получаю такой warning:

warning C4250: 'E' : inherits 'E::E::foo' via dominance

#include <iostream>
using namespace std;

class A {
public:
   virtual int foo() = 0;
};

class B : virtual public A {
public:
   virtual int foo() {
      return 3;
   }
};

class C : virtual public A {};

class E : public B, public C {};   // C4250

int main() {
   E eObject;
   cout << eObject.operator int() << endl;

}


как бы от него избавится? И еще смущает имя 'E::E::foo' ...

От virtual inheritance отказываться не желательно...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.