为了账号安全,请及时绑定邮箱和手机立即绑定

在下面这段代码中,类Animal和类Dog中的默认构造函数为什么必须要写呢?

在下面这段代码中,类Animal和类Dog中的默认构造函数为什么必须要写呢?

C++
滴水穿石2016 2016-03-03 15:47:51
#include <iostream> #include <stdlib.h> #include <string> using namespace std; /**  * 定义动物类:Animal  * 虚函数:eat()  * 纯虚函数:move()  * 数据成员:m_strName  */ class Animal { public:     // 默认构造函数     Animal();     // 含参构造函数 Animal(string name){m_strName = name; cout << "Animal" << endl;}     // 虚析构函数 virtual ~Animal(){cout << "~Animal" << endl;}     // 虚成员函数 virtual void eat(){cout << "Animal--" << m_strName << "-- eat" << endl;}     // 纯虚函数 virtual void move() =0; public:     // 数据成员 string m_strName; }; /**  * 定义狗类:Dog  * 公有继承动物类  * 虚成员函数:eat()、move()  */ class Dog : public Animal { public:     // 默认构造函数     Dog();     // 含参构造函数 Dog(string name){m_strName = name; cout << "Dog" << endl;}     // 虚析构函数 virtual ~Dog(){cout << "~Dog" << endl;}     // 虚成员函数eat() virtual void eat(){cout << "Dog--" << m_strName << " -- eat" << endl;}     // 虚成员函数move() virtual void move(){cout << "Dog--" << m_strName << " -- move" << endl;} public:     // 数据成员 string m_strName; }; int main(void) {     // 通过动物类实例化狗类     Animal *p=new Dog("seven");     // 调用成员函数 p->eat();     p->move();     // 释放内存 delete p;     p=NULL;      return 0; }
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1700 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信