运算符重载

基本用法

#ifndef OPERATOR_MYTIME1_H
#define OPERATOR_MYTIME1_H

class Time
{
private:
    int hours;
    int minutes;
public:
    Time();
    Time(int h, int m);
    Time operator+(const Time & t) const;
    void show() const;
};

#endif //OPERATOR_MYTIME1_H
#include <iostream>
#include "mytime1.h"

Time::Time() { hours = minutes = 0; }

Time::Time(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;
    return sum;
}

void Time::show() const
{
    std::cout<<"hours: "<<hours<<", minutes"<<minutes<<std::endl;
}
#include <iostream>
#include "mytime1.h"
using namespace std;

int main() {
    Time t1(1,1);
    Time t2(2,2);
    Time sum;
    sum = t1 + t2; //等价于sum = t1.operator+(t2)
    sum.show();
    return 0;
}

 

posted @ 2019-06-24 10:28  xd_xumaomao  阅读(90)  评论(0编辑  收藏  举报