很简单啊~~
基本的原理就是:先构造的后析构,后构造的先析构
实际上这是一个堆栈的数据结构,满足先进后出的原理
给你一个很简单的例子:(我没有在VC中写,直接在baidu上写的,所以可能有错,不过你知道原理就行了)
class MyTestA
{
MytestA(){cout <<"A构造函数执行"};
~MyTestA(){cout <<"A析构函数执行"};
};
class MyTestB
{
MytestB(){cout <<"B构造函数执行"};
~MyTestB(){cout <<"B析构函数执行"};
};
int main()
{
MyTestA a;
MyTestB b;
return 0;
}
最后的结果是:
A构造函数执行
B构造函数执行
B析构函数执行
A析构函数执行