• 网易云课堂_C++程序设计入门(下)_第8单元:年年岁岁花相似– 运算符重载_第8单元


    第8单元 - 作业1:OJ编程 - 重载关系运算符

    �返回
     

    温馨提示:

    1.本次作业属于Online Judge题目,提交后由系统即时判分。

    2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩。

    练习关系运算符重载

    依照学术诚信条款,我保证此作业是本人独立完成的。

    1
    练习关系运算符重载(5分)

    题目内容:

    参见本节课件【第8单元 - 单元作业1说明

    输入格式:

    输出格式:

    输入样例:

    输出样例:

    时间限制:500ms内存限制:32000kb
    #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() {
    	}
    
    	int getRadius();
    
    	//----在此处添加关系运算符  >、<、>=、<=、==、!=  的重载原型声明
    	bool operator>(MyCircle &secondMyCircle);
    	bool operator<(MyCircle &secondMyCircle);
    	bool operator>=(MyCircle &secondMyCircle);
    	bool operator<=(MyCircle &secondMyCircle);
    	bool operator==(MyCircle &secondMyCircle);
    	bool operator!=(MyCircle &secondMyCircle);
    };
    
    int MyCircle::getRadius()
    {
    	return radius_;
    }
    
    //----在此处添加关系运算符的重载定义
    bool MyCircle::operator>(MyCircle & secondMyCircle)
    {
    	return (this->getRadius()) > (secondMyCircle.getRadius());
    }
    
    bool MyCircle::operator<(MyCircle & secondMyCircle)
    {
    	return (this->getRadius()) < (secondMyCircle.getRadius());
    }
    
    bool MyCircle::operator>=(MyCircle & secondMyCircle)
    {
    	return (this->getRadius()) >= (secondMyCircle.getRadius());
    }
    
    bool MyCircle::operator<=(MyCircle & secondMyCircle)
    {
    	return (this->getRadius()) <= (secondMyCircle.getRadius());
    }
    
    bool MyCircle::operator==(MyCircle & secondMyCircle)
    {
    	return (this->getRadius()) == (secondMyCircle.getRadius());
    }
    
    bool MyCircle::operator!=(MyCircle & secondMyCircle)
    {
    	return (this->getRadius()) != (secondMyCircle.getRadius());
    }
    
    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;
    }
    
  • 相关阅读:
    【推荐】微服务分布式企业框架Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis
    将WCF寄宿在托管的Windows服务中
    剑指Offer
    剑指Offer
    Entity Framework 无法对没有主键的视图映射实体的解决办法
    设置Sql Agent运行Job时的执行账户
    IE中Keep-Alive机制引起的错误
    Ajax错误 “SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 而导致此项操作无法完成” 的归纳总结
    在IIS站点中Adomd.net集成认证账号问题
    出现“不能执行已释放的Script代码”错误的原因及解决办法
  • 原文地址:https://www.cnblogs.com/denggelin/p/7135386.html
Copyright © 2020-2023  润新知