Effective C++读书笔记(12)

条款18:让接口容易被正确使用,不易被误用

欲开发一个“容易被正确使用,不容易被误用”的接口,首先必须考虑客户可能做出什么样的错误。

1、许多用户会出现对接口所传实参不对应或者取值范围有问题的错误。这些错误可以因为导入新类型而获得预防,可以通过简单地外覆类型来区别参数类型。(用成熟且经过充分锻炼的classes并封装其内数据比简单使用structs好

对于限制取值范围常见有两种方法:1、利用enum来限制(但是enum不具备类型安全性,可以被拿来当作一个int使用);2、以静态函数替代对象,表现某个特定的值。

2、限制类型内什么事可做,什么事不可做。(常见的限制是const)尽量令自定义的类型的行为与内置类型的行为保持一致,提供行为一致的接口。

很少有其他性质比得上“一致性”更能导致“接口容易被正确使用,也很少有其他性质比得上”不一致性“更加剧接口的恶化。

3、任何接口如果要求客户必须记住某些事情就可能有错误的倾向。

将原始指针传给tr1::shared_ptr会比将其初始化为null再对它做一次赋值操作更合理。

tr1:;shared_ptr会自动使用它的每个指针专属的删除器,因此消除了”cross-DLL problem“(关于cross-DLL problem详见另一片博文)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值