漫漫编程路——C++篇(七)——关于重载操作符(一)

   不知不觉新的一个星期来到了,虽然自己的文章没什么人看,不过从小到大也慢慢学会了自娱自乐,也许正是这个原因能让我在电脑前坐个八九个小时而不会觉得无聊吧。这道题目很简单,其实从前的题目都非常简单,但是在写程序的时候,我常常不自觉的会把题目的难度给提高了一个层次,因为太过简单的题目其实并不有利于我们 的学习,简单的题目容易让我们的思维也停留在简单的层面,当然,那些有利于我们打好基础的题目并不在此列之中,这让我想起了Duesenberry的相对 收入消费理论,人常常会碰到棘轮效应,如果你常常从高级的方法去思考程序时,有时很简单的题目就有可能做得很复杂了,因此我的这种习惯也是有好有坏的。我 习惯于慢慢的在程序中增加我不太熟悉的方法或者是函数,这样在做完题目以后就会使得我原本不会的方法变成会的方法,但是在以后很定还是要继续练习的。不过,重申一句,编程确确实实需要耐心 好了,废话也懒得打了,例题如下:
设计一个长方形类Triangle,包含长和宽两个私有数据成员。要求重载运算符”>”或者”<”,以实现比较两个矩形对象面积的大小。
程序:
#include<iostream>
using namespace std;
class Rectangle{
double length;
double width;
public:
    Rectangle(double l,double w):length(l),width(w){}
    double rlength(){
    return length;
    }
    double rwidth(){
    return width;
    }
    void display(){
    cout<<"长度为:"<<length<<'/t'<<"宽度为:"<<width;
    }
};
int operator<(Rectangle& a,Rectangle& b){
    if(a.rlength()*a.rwidth()<b.rlength()*b.rwidth())
        return 1;
    return 0;
    }
int operator>(Rectangle& a,Rectangle& b){
    if(a.rlength()*a.rwidth()>b.rlength()*b.rwidth())
        return 1;
    return 0;
    }
void main(){
double x,y,x1,y1;
cout<<"请分别输入两个矩形的长和宽:";
cin>>x>>y>>x1>>y1;
Rectangle m(x,y);
Rectangle n(x1,y1);
if(m>n)
{
    cout<<"面积较大的矩形为:";
m.display();
}
else if(m<n)
{
    cout<<"面积较大的矩形为:";
n.display();
}
else
cout<<"两个矩形面积相等。";
}
解析:重载操作符需要注意的事情很多,比如说重载‘=’时就要放在类中,而不能随随便便的将它阻于房门之外。重载包括了很多东西,不同的重载有不同的用法,有需要指针的,有需要引用的,也有都不需要的,因事而异,这道题目没什么好分析的,因为确实太简单的,那就到此为止了,打字太麻烦,累啊~~~~~~~
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值