根据以下代码写出运行结果:
#include <iostream>
using namespace std;
class App{
public:
App(){
cout << "constructor of App" << endl;}
~App(){
cout << "destructor of App" << endl;}
};
App app1;
int main()
{
cout << "main start." << endl;
App app2;
return 0;
}
答案:
分析:
这里定义了一个全局的对象app1, 所以在进入main函数之前这个对象需要先初始化——调用构造函数;
紧接着进入main函数,输出了函数日志“main start.” 紧接着定义了一个局部对象app2,所以又会有一次构造函数的调用;
main函数结束之前调用了app2的析构函数;
main函数执行结束,全局对象app1也被释放,同样调用了析构函数。