Chúng ta sẽ tiến thêm một bước nữa và trang bị cho code của chúng ta có khả năng xuất ra các giá trị kiểu weekday theo một dạng mà con người có thể hiểu được ngay.
Chúng ta sẽ thực hiện việc này bằng cách nạp chồng toán tử << của stream.
Đây là source code hoàn chỉnh →
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#include <iostream> using namespace std; enum weekday {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY}; weekday operator+(weekday day, int days) { return weekday((int(day) + days) % 7); } ostream& operator<< (ostream &strm, weekday day) { switch(int(day)) { case SUNDAY: strm << "SUNDAY"; break; case MONDAY: strm << "MONDAY"; break; case TUESDAY: strm << "TUESDAY"; break; case WEDNESDAY: strm << "WEDNESDAY"; break; case THURSDAY: strm << "THURSDAY"; break; case FRIDAY: strm << "FRIDAY"; break; case SATURDAY: strm << "SATURDAY"; break; default: strm << "Somewhere inside the depths of time..."; break; } return strm; } int main(void) { weekday d = SATURDAY; d = d + 16; cout << d << endl; return 0; } |