优点

  • 相比全局变量

    • 将构造函数私有,可以防止定义多个实例!

    • 可以实现为uncopyable,禁止复制或赋值!

  • 更加的OO,使用起来便利,无须手动创建和释放!

    • 利用C++的确定性析构特点,可以确保程序退出时,执行析构函数,释放相应资源!
  • 可以确保在使用该对象时,该对象已被初始化,而nonlocal-static却不能保证(参考 Effective C++ Item-4 P30)

    因为C++标准没有定义,也无法定义不同模块中nonlocal-static对象的初始化顺序

  • 程序启动更快,只有在首次使用的时候才会创建

留言