一.只能在对上创建的对象
我们可以通过构造函数私有化,或者析构函数私有化来实现,我们可以单独写一个供上层使用的删除函数或者创建函数,注意的问题是我们需要同时禁用掉拷贝构造和赋值,不然拷贝构造创建的对象还是在栈上。在98中我们可把赋值函数和拷贝构造私有化,在c++11当中我们可以直接delete掉这两个函数
二.只能在栈上创建的对象
其实和上个问题类似,我们可以把构造函数私有化,然后单独写一个创建函数,同时这次我们可以把new强制不实现。同样有拷贝构造和赋值的问题需要处理
三.单例模式的两种实现方式
单例的意思就是只能创建一个对象。有两种方式来实现单例
a:恶汉模式,恶汉模式的思路是在程序运行前就把这个对象创建好,并不能被重复创建
可以用一个指向自己的静态指针,并在一开始初始化这个指针,这样就会初始化一份对象。对象内的静态变量是共有的,同时我们私有了构造函数,这样就能保证只有一份对象
b.懒汉模式:
和恶汉模式结构类似,不过对象只在第一次调用的时候初始化,同样私有构造函数,通过创建函数来创建对象,这里搭配了一个垃圾回收器,用于回收空间