快快喜欢我 2021-06-15 09:02 采纳率: 20%
浏览 519

声明一个哺乳动物类Mammal,再由此派生出狗类Dog,

【问题描述】声明一个哺乳动物类Mammal,再由此派生出狗类Dog,

自行根据需要定义相关的成员,达到以下要求:

(1)达到以上题目所规定的类族要求。

(2)编制一个名为creating的函数,在该函数实现中声明一个Dog类的对象,实现对象的speak()函数的调用

(3)编制主函数,在主函数中调用creating 函数,调用结束后观察基类与派生类的构造函数与析构函数的调用顺序。

【输入形式】无输入。

【输出形式】分别输出对应类的构造函数和析构函数的调用信息

【样例输入】无输入

【样例输出】

Mammal constructor

Dog constructor

wang wang

Dog destructor

Mammal destructor

【程序说明】需要在对应的构造函数和析构函数中写入相关的调用信息,如样例所示。请保持样例指定信息一致,否则无法通过系统检测。

  • 写回答

1条回答 默认 最新

  • 「已注销」 2023-03-17 08:21
    关注

    参考GPT和自己的思路:

    好的,根据你的问题描述,下面是我提供的解决方案:

    #include <iostream>
    using namespace std;
    
    class Mammal {
    public:
        Mammal() {
            cout << "Mammal constructor" << endl;
        }
        ~Mammal() {
            cout << "Mammal destructor" << endl;
        }
    };
    
    class Dog : public Mammal {
    public:
        Dog() {
            cout << "Dog constructor" << endl;
        }
        ~Dog() {
            cout << "Dog destructor" << endl;
        }
    
        void speak() {
            cout << "wang wang" << endl;
        }
    };
    
    void creating() {
        Dog my_dog;
        my_dog.speak();
    }
    
    int main() {
        creating();
        return 0;
    }
    

    解释一下上面的代码,我们首先定义了一个哺乳动物类Mammal,并在其中定义了构造函数和析构函数,在派生类Dog中通过public继承了Mammal类,然后也定义了构造函数和析构函数,并且添加了一个speak()函数,实现对狗的叫声输出。

    接着,在creating函数中声明了一个Dog类的对象,并调用了其speak()函数,最后在主函数中调用creating函数,观察基类与派生类的构造函数与析构函数的调用顺序,即可得到样例输出:Mammal constructor、Dog constructor、wang wang、Dog destructor、Mammal destructor。

    希望能够解决你的问题!

    评论

报告相同问题?

悬赏问题

  • ¥15 Python怎么学啊最基础的解答一下
  • ¥15 根据时间在调用出列表
  • ¥15 FastReport.community 编辑,table只显示“每页”最顶部和底部横线
  • ¥15 R 包chipseeker 安装失败
  • ¥15 Veeam Backup & Replication 9.5 还原问题
  • ¥15 vue-print-nb
  • ¥15 winfrom的datagridview下拉框变成了黑色,渲染不成功
  • ¥20 利用ntfy实现短信推送
  • ¥30 如何用VBA代码写抽取TRIBON M3数据库的模型信息
  • ¥15 MySQL好难呀,怎么呀