Класс C ++ с множественными типами наследования и коварианаC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Класс C ++ с множественными типами наследования и ковариана

Сообщение Anonymous »

Я пытаюсь понять ошибку компиляции из последней версии
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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»