【问题描述】按以下要求进行编程:
(1)编写动物Animal类,其中包含虚函数Shout()来表示动物叫声;
(2)在Animal类的基础上,派生出Dog类和Cat类,要求对这两个类的Shout()函数进行重写,Dog类的Shout()函数输出"WangWangWang"的信息,Cat类Shout()函数输出"MiaoMiaoMiao"的信息;
(3)在主函数中定义两个Animal指针a1和a2、一个Dog对象dog和一个Cat对象cat,并将a1指向dog对象、将a2指向cat对象,再分别调用a1和a2的Shout()函数,输出对应的结果。
#include <iostream>
using namespace std;
class Animal{
public:
Animal(){}
virtual char Shout()=0;
};
class Dog:public Animal{
public:
Dog(){}
Dog(char s){
this->s=s;
}
char Shout(){
cout<<"WangWangWang"<<endl;
return 0;
}
private:
char s;
};
class Cat:public Animal{
public:
Cat(){}
Cat(char s){
this->s=s;
}
char Shout(){
cout<<"MiaoMiaoMiao"<<endl;
return 0;
}
private:
char s;
};
int main(){
Dog dog();
Cat cat();
Animal *ani;
ani=&dog;
dog->Shout();
return 0;
}
错误提示了 [Error] cannot convert 'Dog (*)()' to 'Animal*' in assignment