天天看点

C++两种单例(饿汉式,懒汉式)

饿汉式

这个是以静态成员作为单例的。

因为是单例,所以禁止创建其他a类对象,a a调用构造函数创建对象,所以将a类的构造函数放在

private里,a a = a::getinstance()调用拷贝构造函数创建对象,所以将拷贝构造函数放在private里

面,同时接口函数static a& getinstance(void),是静态的,如果是非静态的,那么怎么调用getinstance

函数呢,所以必须是静态的.

注意:静态成员对象s_instance是可以调用私有的构造函数的(我也不知道为什么).

2.懒汉式

这里是以静态成员指针作为单例,也没什么好说的了.

注意:静态成员指针s_instance,在new a(1234)时调用构造函数,但是在delete this时,是不会调用析够函数的,不管是公有的析构函数还是私有的析构函数(为什么不能调用析构函数我也不知道)

继续阅读