Я написал фрагмент кода, где у меня есть абстрактный базовый класс. Класс Tiger и Class Lion фактически наследуются от базового класса животных. Лигер наследует как от Льва, так и от Тигра. Когда я пытаюсь создать объект Liger и функцию доступа, я получаю ошибку «двусмысленный доступ к прогулке». Я использовал виртуальное наследование, чтобы избежать проблемы с алмазами. Может ли кто-нибудь помочь мне преодолеть эту проблему.Преодоление двусмысленности алмаза в абстрактном классе
#include "stdafx.h"
#include <iostream>
using namespace std;
class Animal
{
public:
virtual void walk() = 0;
};
class Lion : virtual public Animal
{
public:
void walk()
{
cout<<"Animal Walking"<<endl;
}
};
class Tiger : virtual public Animal
{
public:
void walk()
{
cout<<"Animal Walking"<<endl;
}
};
class Liger : public Lion , public Tiger
{
public:
};
int _tmain(int argc, _TCHAR* argv[])
{
Liger lig;
lig.walk();
return 0;
}
Вы никогда не определяли функцию 'walk' для' Liger'. – NathanOliver