| 2 | #include <memory> |
| 3 | |
| 4 | class MyTime |
| 5 | { |
| 6 | int hours; |
| 7 | int minutes; |
| 8 | public: |
| 9 | MyTime(): hours(0), minutes(0) |
| 10 | { |
| 11 | std::cout << "Constructor MyTime()" << std::endl; |
| 12 | } |
| 13 | MyTime(int m): hours(0), minutes(m) |
| 14 | { |
| 15 | std::cout << "Constructor MyTime(int)" << std::endl; |
| 16 | this->hours += this->minutes / 60; |
| 17 | this->minutes %= 60; |
| 18 | } |
| 19 | MyTime(int h, int m): hours(h), minutes(m) |
| 20 | { |
| 21 | std::cout << "Constructor MyTime(int,int)" << std::endl; |
| 22 | this->hours += this->minutes / 60; |
| 23 | this->minutes %= 60; |
| 24 | } |
| 25 | ~MyTime() |
| 26 | { |
| 27 | std::cout << "Destructor MyTime(). Bye!" << std::endl; |
| 28 | } |
| 29 | MyTime operator+(int m) const |
| 30 | { |
| 31 | MyTime sum; |
| 32 | sum.minutes = this->minutes + m; |
| 33 | sum.hours = this->hours; |
| 34 | sum.hours += sum.minutes / 60; |
| 35 | sum.minutes %= 60; |
| 36 | return sum; |
| 37 | } |
| 38 | friend std::ostream & operator<<(std::ostream & os, const MyTime & t) |
| 39 | { |
| 40 | std::string str = std::to_string(t.hours) + " hours and " |
| 41 | + std::to_string(t.minutes) + " minutes."; |
| 42 | os << str; |
| 43 | return os; |
| 44 | } |
| 45 | }; |
| 46 | |
| 47 | |
| 48 | int main() |
nothing calls this directly
no outgoing calls
no test coverage detected