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

假设正在为一个表示时间日期的类设计构造函数:

class Date {
   
public:
 Date(int month, int day, int year);
 ...
};
Date d(30, 3, 1995); // 糟糕! 应该是 “3, 30” , 而不是 "30, 3"
Date d(2, 30, 1995); // 糟糕! 应该是 "3, 30" , 而不是 "2, 30"

引入新的类型,可以避免许多客户的错误:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值