#include<iostream>
using namespace std;
class AAA
{
public:
AAA()
{
cout << "这里是AAA的构造器" << endl;
}
~AAA()
{
cout << "这里是AAA的XI构器" << endl;
}
protected:
private:
int X;
};
class BBB : public AAA
{
};
class CCC : public BBB
{
};
CCC dosomething()
{
CCC c;
//调用了一次AAA的构造器->(构造c)
return c;
//调用了一次AAA的析构器->(删除c)
}
void dosomething(AAA a)
{
BBB b;
//调用了一次AAA的构造器->(构造b)
//检查到函数要结束
//调用了一次AAA的析构器->(删除b)
//调用了一次AAA的析构器->(删除形参列表的a)
}
int main()
{
AAA a;
//调用了一次AAA的构造器->(构造a)
BBB b;
//调用了一次AAA的构造器->(构造b)
CCC c;
//调用了一次AAA的构造器->(构造c)
dosomething(a);//见函数体(29行)
c = dosomething();//见函数体(24行)
return 0;
//调用了四次AAA的析构器
//第一次删除a
//第二次删除b
//第三次删除c
//第四次调用main
}