相比全局变量
将构造函数私有,可以防止定义多个实例!
可以实现为uncopyable,禁止复制或赋值!
更加的OO,使用起来便利,无须手动创建和释放!
可以确保在使用该对象时,该对象已被初始化,而nonlocal-static却不能保证(参考 Effective C++ Item-4 P30)
因为C++标准没有定义,也无法定义不同模块中nonlocal-static对象的初始化顺序
程序启动更快,只有在首次使用的时候才会创建