//mytime0.h -- Time class before operator overloading
#ifndef MYTIME0_H_
#define MYTIME0_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 Sum(const Time & t) const;
    void Show() const;
};
#endif

 

// mytime0.cpp -- implementing Time methods
#include <iostream>
#include "mytime0.h"
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::Sum(const Time & t) const //coding.Sum(fixing)
{
Time sum;
sum.minutes = minutes + t.minutes; //55
sum.hours = hours + t.hours + sum.minutes / 60; //0+5+55
sum.minutes %= 60; //60/60=1
return sum;
}
void Time::Show() const //Time fixing(5, 55);
{
std::cout << hours << " hours, " << minutes << " minutes";
}

 

#include <iostream>
#include "mytime0.h"
#include "mytime0.cpp"
int main()
{
using std::cout;
using std::endl;
Time planning;
Time coding(2, 40);
Time fixing(5, 55);
Time total;

cout << "planning time = ";
planning.Show();
cout << endl;

cout << "coding time = ";
coding.Show();
cout << endl;

cout << "fixing time = ";
fixing.Show();
cout << endl;

total = coding.Sum(fixing);
cout << "coding.Sum(fixing) = ";
total.Show();
cout << endl;

system("PAUSE");
return 0;
}

 顯示結果:
planning time =0 hours,0 minutes

coding time =2 hours,40 minutes

fixing time =5 hours,55 minutes

coding.Sum(fixing)=8 hours,35 minutes

arrow
arrow
    全站熱搜

    布拉怡 發表在 痞客邦 留言(0) 人氣()