Item 18 不易误用的接口

● 用类型限制用户

 

重新设计接口:

 

如果想限制用户对月份的误用,可以用类:

 

● 防止客户写出下面代码的方法,是用const限制operator*的返回值

if (a * b = c) ... // 其实想写成 (a * b == c)

● 如果要求客户必须记住,那么他们就有可能忘记

比如申请资源的释放,强制用户使用智能指针管理:
std::tr1::shared_ptr<Investment> createInvestment();

可以为shared_ptr指定一个deleter,该deleter会在引用计数为零时自动调用。
比如有个函数getRidOfInvestment作为deleter传给shared_ptr的某个ctor:

 

当然,如果能直接把正确的指针给shared_ptr的ctor更好。

● shared_ptr来自boost,是原始指针的两倍大;动态分配内存;以virtual形式调用deleter;支持多线程环境下修改引用计数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值