smower 2022-10-26 14:16 采纳率: 100%
浏览 236
已结题

【C++编程】使用c++语言编程完成以下功能。

题目:

有以下动物基类,基类方法用于输出动物的移动信息。

class Animal {

protected:

        string name;

 public:

        void move(){

                 count<<name<<" is moving "<<endl;

        }

};

增加动物类Dog继承了Animal。初始化时指定其name。动物类对象通过getNmae和setName方法读写name。增加属性father用于存储该Dog的父本名称。

按照要求写出Dog的完整程序。要求Dog类之间的关系至少到父和祖父这个层次。

请大家测试完成后再发出来,注意只能用C++写哦,zaixian等等!2:10

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2022-10-26 14:49
    关注

    要求Dog类之间的关系至少到父和祖父这个层次====这是啥个意思???
    谁是父,谁是祖父?是需要Dog继续往下派生子类吗?

    #include <iostream>
    using namespace std;
    class Animal 
    {
    protected:
            string name;
     public:
            void move()
            {
                 cout<<name<<" is moving "<<endl;
            }
    };
    class Dog : public Animal 
    {
        protected:
             Dog *m_pFather; //新增数据成员
         public:
             Dog(string name) 
             {
                 this->name = name;
                 m_pFather = NULL;
             }
             string GetName()
             {
                     return name;
             }
             void SetName(string name)
             {
                     this->name = name;
             }
             void SetFather(Dog *pFather)
             {
                  m_pFather = pFather;
             }
             void move() 
             {
                  Animal::move();
                  if(m_pFather != NULL)
                        m_pFather->move();
             }
    };
     
    int main()
    {
        Dog *pGrandFather = new Dog("Joke");
        Dog *pFather = new Dog("Tom");
        Dog *pDog = new Dog("White");
        pFather->SetFather(pGrandFather);
        pDog->SetFather(pFather);
        pDog->move();
        delete pDog;
        delete pFather;
        delete pGrandFather;
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月3日
  • 已采纳回答 10月26日
  • 赞助了问题酬金50元 10月26日
  • 创建了问题 10月26日

悬赏问题

  • ¥15 conda 命令用不了 conda就是用不了 一用就显示core dumped
  • ¥100 基于delphi10.2几个功能的程序demo
  • ¥15 TinyMCE如何去掉自动弹出的“链接…”工具?
  • ¥15 微信支付转账凭证,如何解决
  • ¥15 在win10下使用指纹登录时,界面上的文字最后一个字产生换行现象
  • ¥20 使用AT89C51微控制器和MAX7219驱动器来实现0到99秒的秒表计数,有开始和暂停以及复位功能,下面有仿真图,请根据仿真图来设计c语言程序
  • ¥15 51单片机 双路ad同步采样
  • ¥15 使用xdocreport 生成word
  • ¥15 请教怎么用MATLAB求坐标
  • ¥15 gradle整合es,在创建索引时报错