Класс 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\multInheritanceCovariantRetTest.cpp(16,15):
2> see declaration of 'Ax::vf' 2>
C:\wgreene\tests\c++\MiscTests\multInheritanceCovariantRetTest.cpp(31,15):
2> 'Vr': ambiguous base is not covariant
2>C:\wgreene\tests\c++\MiscTests\multInheritanceCovariantRetTest.cpp(31,15):
error C2555: 'Dx::vf': overriding virtual function return type differs
and is not covariant from 'Bx::vf' 2>
C:\wgreene\tests\c++\MiscTests\multInheritanceCovariantRetTest.cpp(23,15):
2> see declaration of 'Bx::vf' 2>
C:\wgreene\tests\c++\MiscTests\multInheritanceCovariantRetTest.cpp(31,15):
2> 'Vr': ambiguous base is not covariant


Подробнее здесь: https://stackoverflow.com/questions/796 ... turn-types
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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