我写了一段代码,其中有一个抽象基类。 Tiger和Class Lion几乎都是从Animal Base Class继承而来的。狮子从狮子和老虎继承。当我尝试创建一个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;
}
您从未为'Liger'定义'walk'函数。 – NathanOliver