派生类的析构函数的功能是在该对象消亡之前进行一些必要的清理工作,析构函数没有类型,也没有参数。
析构函数的执行顺序与构造函数相反,无需指明析构关系,因为析构函数只有一种,无重载,无默参
析构顺序:子类->成员->基类
#include "stdafx.h"
#include <iostream>
using namespace std;
class A
{
public:
A()
{
cout << "A()" << endl;
}
~A()
{
cout << "~A()" << endl;
}
};
class Base
{
public:
Base()
{
cout << "Base()" << endl;
p = new char[100];
}
~Base()
{
cout << "~Base()" << endl;
delete p;
}
private:
char* p;
};
class Derive:public Base
{
public:
Derive()
{
cout << "Derive()" << endl;
q = new char[200];
}
~Derive()
{
cout << "~Derive()" << endl;
delete q;
}
private:
A a;
char* q;
};
int _tmain(int argc, _TCHAR* argv[])
{
Derive d;
return 0;
}