#include
#include
using namespace std;
class Mammal
{
public:
Mammal(string n,int a,int w)
{
name=n;
age=a;
weight=w;
}
virtual string speak() =0;
virtual string eat() =0;
virtual string move()=0;
virtual void display()=0; ////这里是 display吧 或者 Dog里面的修改dispaly,这两个要一致。
protected:
int age;
int weight;
string name;
};
class Dog : public Mammal
{
public:
Dog(string n,int a,int w):Mammal(n,a,w)
{}
string move()
{return "宠物看门"; }
string speak(){return "汪汪";}
string eat(){return "骨头";}
void display() ////和上面需要一致
{
cout<<"狗类的信息:"<
};
int main()
{
Dog d1("dog1",4,4);
Dog d2("dog2",3,4);
Mammal *animals[2];
animals[0]=&d1;
animals[1]=&d2;
for(int i=0;i<=1;i++)
{
animals[i]->display(); ////三个 display要一致
}
}
写错了
基类写的dispaly
后面写的display
..
含有(或继承)一个或多个纯虚函数的类是抽象基类。除了作为抽象基类的派生类的对象的组成部分,不能创建抽象类型的对象。