根据以下代码写出运行结果:
#includeusing 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也被释放,同样调用了析构函数。



