【c++初阶】特殊类设计

一.只能在对上创建的对象

我们可以通过构造函数私有化,或者析构函数私有化来实现,我们可以单独写一个供上层使用的删除函数或者创建函数,注意的问题是我们需要同时禁用掉拷贝构造和赋值,不然拷贝构造创建的对象还是在栈上。在98中我们可把赋值函数和拷贝构造私有化,在c++11当中我们可以直接delete掉这两个函数

 二.只能在栈上创建的对象

其实和上个问题类似,我们可以把构造函数私有化,然后单独写一个创建函数,同时这次我们可以把new强制不实现。同样有拷贝构造和赋值的问题需要处理

 三.单例模式的两种实现方式

单例的意思就是只能创建一个对象。有两种方式来实现单例

a:恶汉模式,恶汉模式的思路是在程序运行前就把这个对象创建好,并不能被重复创建

 可以用一个指向自己的静态指针,并在一开始初始化这个指针,这样就会初始化一份对象。对象内的静态变量是共有的,同时我们私有了构造函数,这样就能保证只有一份对象

b.懒汉模式:

和恶汉模式结构类似,不过对象只在第一次调用的时候初始化,同样私有构造函数,通过创建函数来创建对象,这里搭配了一个垃圾回收器,用于回收空间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值