C++中使用单例类
单例类的定义和使用
1 | class Singleton { |
众所周知,C++中的单例模式可以在实例化函数中实例化一个静态的对象,然后返回静态对象的引用即可。不过由于C++还有智能指针的存在,只返回引用的话,无法满足使用智能指针的场景。
经过改进后,仍然是选择返回静态对象的方案,不过提供了两个实例化函数,分别返回智能指针和对象引用。有趣的是,在返回对象引用的实例化函数中,不再是实例化一个静态函数(否则两个实例化函数都被使用的情况下会出现两个实例对象,这与单例类的设计初衷相悖),而是返回智能指针实例化中的静态对象,这样就保证了全局只会有一个静态的实例化对象。
PS: 一定要将拷贝构造和拷贝赋值运算符重载都delete掉,否则在调用实例化对象的时候,不指定引用类型的话会拷贝一个新的对象,也没有错误提示。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 cwt技树年轮!
评论