运算符重载
基本用法
#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; }