java operator overload_c++下的 overload operator

't modified quote

{            //example: void output(integer &ur), it will running error

cout

int main()

{

integer in(12,25);

//in++;

output(in++);

output(++in);

output(in++);

return 0;

}

*******the result*******

12 25

14 27

14 27

从以上两个程序可以看出,再用重载操作符(一元)时,最好定义一个返回函数,然后再通过外部调用,否则会出错

类似的操作符还有operator--(), operator--(int).

在以上类中添加如下语句

integer& operator--() //overload operator i--

{

i--;

a--;

return *this;

}

integer operator--(int) //overload operator --i

{

int odi=i;

int od=a;

i--;

a--;

return integer(odi,od);

}

integer& operator-() //取相反数

{

i=i*(-1);

a=a*(-1);

return *this;

}

integer& operator~() //按位取非

{

i=~i;

a=~a;

return *this;

}

integer& operator!() //取反

{

i=!i;

a=!a;

return *this;

}

在以上main函数中添加如下的语句:

output(in--);

output(--in);

output(in--);

output(-in);

output(~in);

output(!in);

*********the result:*************

12 25

10 23

10 23

-9 -22

8 21

0 0

以上结果不包括自加的结果

二元运算符(+=, + 和-=)

类中添加如下语句(还是利用上面的程序)

integer& operator+=(integer &c) //overload operator i++

{

i+=c.geti();

a+=c.geta();

return *this;

}

integer &operator-=(integer &x1) //overload operator ++i

{

i-=x1.geti(); //在这里面其实是两个对象,一个是this所指的对象,一个是参数中的对象。

a-=x1.geta();

return *this;

}

integer operator+(integer c) //overload operator i++, need a parameter, don'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值