C++运算符重载

本文详细介绍了C++中的运算符重载概念,包括全局函数及成员函数下的单目和双目运算符重载的具体格式与使用方法,并强调了const正确使用的重要性。

这一块内容很多,我记录一下主要的格式和大致用法。

1.对于全局函数(友元)

单目:以负号(-)为例  (类为A)   这里,[ ]里面的是需要具体情况而判断是否加上

[const]  A  [&]  operator- ( [const] A &  c1)

 

双目:以加法(+)为例

[const] A [&] operator+ ([const]  A & c1 , const A & c2)

 

 

2.对于成员函数

单目:

[const]  A  [&]  operator- ()

 

双目:

[const] A [&] operator+ ([const]  A & another)

 

 

PS:

1.三目运算符  ?:  不可重载。

2.第一个 const 是否加上主要看 函数返回的值 是否能被重新赋值

3..对于负号实际上只能用 const operator-() const 来表示,第一个const修饰返回值,第二个修饰函数。由于需要满足 -(-n) 的成立  和 -n=90的错误,所以需要两个const.

对于 -(-n)中,里面的 -n 返回一个const ,const只能调用 const 函数,所以只能两个 const.(关于const用法见我另一篇文章

4.对于加上第一引用符号,是因为返回值对之前的操作又有改变,所以需要加引用。尤其对于局部变量,绝对不能加引用。

原则:

对于返回对象和返回引用,原则就是能返回引用就返回引用

对于 const 和 非const ,原则就是能 const 就返回 const

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值