练习14.49:
为上一题提到的类定义一个转换目标是bool的类型转换运算符,
先不用在意这么做是否应该。
【出题思路】
本题练习类型转换运算符。
【解答】
class Date{ public: explicit operator bool() { vector<vector<int> > days_per_month = { {31, 28, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} }; return 1 <=month && month <= 12 && 1 <= day && day <= days_per_month[isLeapYear() ? 1 : 0] [month - 1 ]; } bool isLeapYear() { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } private: int year,month,day; //其他成员 };