定义猫科动物Felid类,由其派生出猫类(Cat)和豹类(Leopard)。
Felid包含构造函数、析构函数和纯虚函数sound
Cat包含构造函数、析构函数和虚函数sound
Leopard包含构造函数、析构函数和虚函数sound
要求:定义一个Felid类指针,采用动态内存分配的方式建议一个Cat对象,并且调用sound函数,之后撤销该对象,采用动态内存分配的方式建议一个Leopard对象,并且调用sound函数,之后撤销该对象。
提示:虚析构函数
#include <iostream>
using namespace std;
class Felid {
public:
Felid() { cout << "Felid constructor" << endl; }
virtual void sound(void) = 0;
virtual ~Felid(){cout << "Felid destructor" << endl; }
};
class Cat :public Felid {
public:
Cat() { cout << "Cat constructor" << endl; }
void sound(void) { cout << "Miaow !" << endl; }
~Cat() { cout << "Cat destructor" << endl; }
};
class Leopard :public Felid {
public:
Leopard() { cout << "Leopard constructor" << endl; }
void sound() { cout << "Howl !" << endl; }
~Leopard() { cout << "Leopard destructor" << endl; }
};
int main() {
Felid *p;
p = new Cat;
p->sound();
delete p;
p = new Leopard;
p->sound();
delete p;
return 0;
}