c++实例化抽象类问题。下面代码错文不能改正。求大神解答

2025-04-25 07:13:50
推荐回答(3个)
回答1:

#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<<"狗类的信息:"< cout<<"昵称:"< cout<<"年龄:"< cout<<"体重:"< cout<<"行为:"< cout<<"叫声: "< 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要一致
}
}

回答2:

写错了
基类写的dispaly
后面写的display
..

回答3:

含有(或继承)一个或多个纯虚函数的类是抽象基类。除了作为抽象基类的派生类的对象的组成部分,不能创建抽象类型的对象。