關係運算符重載

關係運算符重載

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

類的聲明

//
// Created by Rdw on 2017/3/9.
//

#ifndef PROJECT5_TIME_H
#define PROJECT5_TIME_H


class Time {
private:
    int hour;
    int minute;
public:
    Time();//默認構造函數
    Time(int h , int m);//構造函數
    ~Time();//析構函數
    void show() const;
    void reset(int h , int m);

    /*重載關係運算符*/
    friend bool operator==(const Time &object1 , const Time &object2);
    friend bool operator!=(const Time &object1 , const Time &object2);
    friend bool operator<(const Time &object1 , const Time &object2);
};


#endif //PROJECT5_TIME_H

類的定義

//
// Created by Rdw on 2017/3/9.
//

#include "Time.h"
#include <iostream>

using namespace std;

Time::Time() {

}

Time::Time(int h, int m) {
    hour = h;
    minute = m;
}

Time::~Time() {

}

void Time::reset(int h, int m) {
    hour = h;
    minute = m;
}

void Time::show() const {
    cout << hour << "hours " << minute << "minutes" << endl;
}


bool operator==(const Time &object1, const Time &object2) {
    return (object1.hour == object2.hour && object1.minute == object2.minute);
}

bool operator!=(const Time &object1, const Time &object2) {
    return !(object1 == object2);
}

bool operator<(const Time &object1, const Time &object2) {
    int temp1 = object1.hour * 60 + object1.minute;
    int temp2 = object2.hour * 60 + object2.minute;
    return temp1 < temp2;
}

類的使用

#include <iostream>
#include "Time.h"

using namespace std;

int main() {

    Time time11 = Time(9 , 30);
    Time time12 = Time(10 , 30);
    Time time13 = Time(9 , 30);
    if (time11 == time12)
        cout << "OK!!!" << endl;
    else
        cout << "NOT OK!!!" << endl;

    if (time11 < time12)
        cout << "<" << endl;
    else
        cout << ">" << endl;
}

測試結果

E:\Project5\cmake-build-debug\Project5.exe
        NOT OK!!!
<

Process finished with exit code 0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章