标签:限制 c++ color har 数据类型 定制 ptr mon 支持
记住:
class Data { public: Date(int month, int day, int year); }; Date d(30, 3, 1995); //错误,应该是3,30 struct Day { explicit Day(int d): val(d) {} int val; }; struct Month { explicit Month(int m) : val(m) {} int val; }; struct Year { explicit Year(int y) : val(y) {} int val; }; class Date { public: Date(const Month& m, const Day& d, const Year& y); ... }; Date d(30, 3, 1995); //错误,不正确的数据类型 Date d(Day(30), Month(3), Year(1995)); //错误,不正确的数据类型 Date d(Month(3), Day(30), Year(1995)); //正确
class Month { public: static Month Jan() { return Month(1); } static Month Feb() { return Month(2); } ... private: explicit Month(int m); }; Date d(Month::Mar(), Day(30), Year(1995));
effective c++ 条款18:让接口容易被正确使用,不易被误用
标签:限制 c++ color har 数据类型 定制 ptr mon 支持
原文地址:https://www.cnblogs.com/pfsi/p/9218061.html