条款十八:让接口容易被正确使用,不易被误用 我们的目标是:如果客户企图使用某个接口而没有获得他所预期的行为,这个代码就不该通过编译;如果代码通过了编译,它的作为就该是客户想要的。 我们来看一个例子,设计一个表现日期的类: class Date{ public: Date(int month, int day, int year); }; 看着是不是觉得还行,但它的客户至少会犯下两个错误: 以错误的次序传递参数Date d(30, 3, 1995); 传递一个无效的月份或天数Date d(2, 30, 1995); //2.30,本来想3.30,但是键盘上2和3很近啊 ...