C++ 運算子過載operator
阿新 • • 發佈:2018-12-03
//MyTime.h
#ifndef MYTIME_H_
#define MYTIME_H_
class Time
{
private:
int hours;
int minutes;
public:
Time();
Time(int h, int m = 0);
void AddMin(int m);
void AddHr(int h);
void Reset(int h = 0, int m = 0);
Time operator+(const Time& t)const;
void Show()const;
};
#endif
//MyTime.cpp #include "MyTime.h" #include <iostream> using namespace std; Time::Time() { hours = minutes = 0; } Time::Time(int h, int m) { hours = h; minutes = m; } void Time::AddMin(int m) { minutes += m; hours += minutes / 60; minutes %= 60; } void Time::AddHr(int h) { hours += h; } void Time::Reset(int h, int m) { hours = h; minutes = m; } Time Time::operator+(const Time & t) const { Time sum; sum.minutes = minutes + t.minutes; sum.hours = hours + t.hours + sum.minutes / 60; sum.minutes %= 60; return sum; } void Time::Show() const { cout << hours << " hours, " << minutes << " minutes"; } int main() { Time planning; Time coding(2, 40); Time fixing(5, 55); Time total; //total = coding.operator+(fixing);//原本的呼叫方式 total = coding + fixing;//使用operator+()後,可以使用運算子表示法 total.Show(); system("pause"); return 0; }