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