【问题描述】按以下要求进行编程:
(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
Dog dog();
Cat cat();
定义Dog,Cat的变量不能有括号,改变如下:
Dog dog =new Dog();
Cat cat = new Cat();
你要问什么问题呀
请说明作业要求, 你碰到的具体困难,错误信息,等。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
也许对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y