Effective C++ 详解条款18. 让接口容易被正确使用

本文详述了Effective C++的条款18,强调设计易于正确使用的接口的重要性。通过导入外覆类型防止参数错误,限制类型操作确保一致性,以及使用智能指针消除资源管理错误。同时,支持定制型删除器能防止DLL问题和资源误用。
摘要由CSDN通过智能技术生成

例子1:导入简单的外覆类型

假如有一个用来表现日期的class设计构造函数:

class Date{
   
public:
  Date(int month, int day, int year);
}

使用者很容易犯下两个错误:1.以错误的次序传递参数。2.传递一个无效的月份或天数。
为了预防这样的问题,可以导入新的类型来获得预防,即导入外覆类型(wrapper types)来区别天数、月份和年份,然后于构造函数中使用这些类型:

struct Day{
   
  explicit Day(int d):val(d){
   }
  int val;
}
struct Month{
   
explicit Month(int m):val(m){
   }
int val;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值