C++程序设计语言练习10.15 构造函数的调用时机

时间:2021-07-12 23:52:22

代码如下:

#include <iostream>

class Global_Val{

public:
	Global_Val();
	~Global_Val();

};

Global_Val::Global_Val()
{
	std::cout << "Initialize" << '\n';
}

Global_Val::~Global_Val()
{
	std::cout << "Clean up" << '\n';
}

Global_Val a;

int _tmain(int argc, _TCHAR* argv[])
{
	std::cout << "Hello, world!\n";
	return 0;
}

理论基础:

在所有函数之外定义的变量(即全局变量、名字空间的变量,以及个各类的static变量;)在main函数被激活之前完成初始化(构造),对于已经构造器的所有这些变量,其析构函数将在退出main()之后调用。动态连接机制使这里的情况稍微复杂了一点,这种情况下的初始化将延迟至代码连接到程序之上的时候进行。