概述
析构函数特点:
- 函数名为“~类名”,用来标记和识别析构函数
- 没有返回值,析构函数是对自身的销毁行为,返回值无意义,因为没有返回值的接收者
- 形参列表为空,所以析构函数没有重载,唯一的
构造函数VS析构函数:
- 构造函数是对自身的初始化,生成(定义)对象时自动调用
- 析构函数是对自身的销毁,销毁对象时自动调用
辅助类
class CAnimal
{
public:
CAnimal() : mGroup(0)
{
cout << "CAnimal()" << endl;
}
CAnimal(int group) : mGroup(group)
{
cout << "CAnimal(" << group << ")" << endl;
}
CAnimal(const CAnimal &other) : mGroup(other.mGroup)
{
cout << "CAnimal(const CAnimal &other)" << endl;
}
~CAnimal()
{
cout << "~CAnimal()" << endl;
}
private:
int mGroup;
};
class CDog : public CAnimal
{
public:
CDog() : mLoyal(10)
{
cout << "CDog()" << endl;
}
CDog(int loyal) : CAnimal(1), mLoyal(loyal)
{
cout << "CDog(" << loyal << ")" << endl;
}
CDog(const CDog &other) : CAnimal(other), mLoyal(other.mLoyal)
{
cout << "CDog(const CDog &other)" << endl;
}
~CDog()
{
cout << "~CDog()&