例子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

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

被折叠的 条评论
为什么被折叠?



