C++運(yùn)算符重載初步

說(shuō)明

此處為MyCircle類重載了一系列運(yùn)算符,按照半徑進(jìn)行比較,用以演示關(guān)系運(yùn)算符重載用法。


示例代碼

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

class MyShape {
protected:
    int R_, G_, B_;

    string colorToString() {
        stringstream ss;
        ss << R_ << " " << G_ << " " << B_;
        return ss.str();
    }
public:
    void setColor(int R, int G, int B) {
        R_ = R; G_ = G, B_ = B;
    }
    int getR() {
        return R_;
    }
    int getG() {
        return G_;
    }
    int getB() {
        return B_;
    }
    virtual void Draw() = 0;
    MyShape() {
        R_ = 255; G_ = 255, B_ = 255;
    }
};

class MyCircle : public MyShape {
private:
    int x_, y_, radius_;

public:
    MyCircle(int x, int y, int radius) {
        x_ = x;
        y_ = y;
        radius_ = radius;
    }

    MyCircle() {
        x_ = y_ = 200;
        radius_ = 100;
    }

    MyCircle(MyCircle& aCircle) {
        x_ = aCircle.x_;
        y_ = aCircle.y_;
        radius_ = aCircle.radius_;
        R_ = aCircle.getR();
        G_ = aCircle.getG();
        B_ = aCircle.getB();
    }
    void setCenter(int x, int y) {
        x_ = x;
        y_ = y;
    }

    void setRadius(int radius) {
        radius_ = radius;
    }

    void Draw() {
    }
    bool operator > (const MyCircle c2) const;
    bool operator < (const MyCircle c2) const;
    bool operator >=(const MyCircle c2)const;
    bool operator <=(const MyCircle c2)const;
    bool operator ==(const MyCircle c2)const;
    bool operator !=(const MyCircle c2)const;
    //----在此處添加關(guān)系運(yùn)算符  >、<、>=、<=、==、!=  的重載原型聲明
};
bool MyCircle::operator<(const MyCircle c2)const {
    return radius_ < c2.radius_;
}
bool MyCircle::operator>(const MyCircle c2)const {
    return radius_ > c2.radius_;
}
bool MyCircle::operator>=(const MyCircle c2)const {
    return radius_ >= c2.radius_;
}
bool MyCircle::operator<=(const MyCircle c2)const {
    return radius_ <= c2.radius_;
}
bool MyCircle::operator==(const MyCircle c2)const {
    return radius_ == c2.radius_;
}
bool MyCircle::operator!=(const MyCircle c2)const {
    return radius_ != c2.radius_;
}
//----在此處添加關(guān)系運(yùn)算符的重載定義

int main() {
    int r1, r2, r3 = 0;
    cin >> r1 >> r2 >> r3;
    MyCircle c1, c2, c3;
    c1.setRadius(r1);
    c2.setRadius(r2);
    c3.setRadius(r3);

    cout << (c1 > c2) << endl;
    cout << (c1 < c2) << endl;
    cout << (c2 >= c3) << endl;
    cout << (c2 <= c3) << endl;
    cout << (c1 == c3) << endl;
    cout << (c1 != c3) << endl;
    return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • C++運(yùn)算符重載-下篇 本章內(nèi)容:1. 運(yùn)算符重載的概述2. 重載算術(shù)運(yùn)算符3. 重載按位運(yùn)算符和二元邏輯運(yùn)算符4...
    Haley_2013閱讀 1,535評(píng)論 0 49
  • C++運(yùn)算符重載-上篇 本章內(nèi)容:1. 運(yùn)算符重載的概述2. 重載算術(shù)運(yùn)算符3. 重載按位運(yùn)算符和二元邏輯運(yùn)算符4...
    Haley_2013閱讀 2,386評(píng)論 0 51
  • 有時(shí)候,我喜歡靜靜地坐在某一個(gè)角落里,什么也不想地發(fā)回呆。時(shí)間仿佛凝固了,我茫然地融入四周虛無(wú)的世界里。 ...
    沽河小白閱讀 524評(píng)論 0 3
  • Number of Islands 題目描述 Given a 2d grid map of '1' s (land...
    StoneN閱讀 2,309評(píng)論 0 2

友情鏈接更多精彩內(nèi)容