weixin_45740043 2021-05-05 10:37 采纳率: 100%
浏览 48
已采纳

C++作业 请问这是什么问题啊

 

【问题描述】按以下要求进行编程:

(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

  • 写回答

6条回答 默认 最新

  • 关注

    Dog dog();
    Cat cat();

    定义Dog,Cat的变量不能有括号,改变如下:

    Dog dog =new Dog();
    Cat cat = new Cat();

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 机器学习简单问题解决
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写