Я пытаюсь понять ошибку компиляции из последней версии
vc ++. Ошибка возникает в классе, который наследует от двух базовых классов и
, включает виртуальную функцию, которая переопределяет функции в базовых классах, но
имеет другой тип возврата. < /P>
Код компилируется и правильно выполняется в G ++ и Clang. Сохраняет намерение кода?#include
using std::cout;
class Vr {};
class Ar : public Vr {};
class Br : public Vr {};
class Dr : public Ar, public Br {};
struct Vx {
virtual Vr* vf() {
cout C:\wgreene\tests\c+\misctests\multinheritancecoviariatrettest.cpp(31,15):
ошибка C2555: 'dx :: vf': переоценка виртуальная функция возвращается />C:\wgreene\tests\c+\misctests\multinheritancecoviaritytrettest.cpp(16,15):
2> См. Объявление «ax :: vf '2>
2>». />C:\wgreene\tests\c+\misctests\multinheritancecoviaritytrettest.cpp(31,15):
2> 'Vr': неоднозначная база не является ковариацией
2>C:\wgreene\tests\c+\misctests\multinheritancecoviariatrettest.cpp(31,15):
ошибка C2555: 'dx :: vf': переоценка виртуальная функция возвращается тип />C:\wgreene\tests\c+\misctests\multinheritanceCoviarityTrettest.cpp(23,15):
2> См. Объявление «bx :: vf '2>
2> см. />c:\wgreene\tests\c+\misctests\multinheritancecoviaritytrettest.cpp(31,15):
2> 'vr': неоднозначная база не является ковариацией < /p>
< /blockquote>
Подробнее здесь: https://stackoverflow.com/questions/796 ... turn-types
Класс C ++ с множественными типами наследования и ковариана ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
В Java можно назначить класс как другой класс без использования наследования.
Anonymous » » в форуме JAVA - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-