【C++】 运算符重载

目录

加号运算符重载 (operator+)

        2、左移运算符重载(只能利用全局函数重载左移运算符)(person<<)

        3、递增运算符重载(operator++)

        4、赋值运算符重载(operator=)

        5、关系运算符重载

        6、函数调用运算符重载   operator()


运算符重载

概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。

  1. 加号运算符重载 (operator+)

        作用:实现两个自定义数据类型相加的运算

运算符重载也可以发生函数重载

总结:对于内置的数据类型的表达式的运算符是不可能改变的(比如两个int类型的数相加,已经内置了,就不能改变了);不要滥用运算符重载(用的person+,在函数里用的减号)。

        2、左移运算符重载(只能利用全局函数重载左移运算符)(person<<)

  

cout是ostream(输出流)类型的;要在cout << p后加endl,就要更改上面运算符重载函数返回值;

注意:如果是私有属性,可以利用友元friend,在类中声明运算符重载函数,就可以了。

        3、递增运算符重载(operator++)

        作用:通过重载递增运算符,实现自己的整形数据

  

注意:前置递增返回的引用,后置递增返回的值

        4、赋值运算符重载(operator=)

        C++编译器至少给一个类添加4个函数:

        <1>默认构造函数(无参,函数体为空)

        <2>默认析构函数(无参,函数体为空)

        <3>默认拷贝构造函数,对属性进行值拷贝

        <4>赋值运算符operator=,对属性进行值拷贝

        如果类中有属性指向堆区,做赋值操作时也会出现深浅拷贝的问题。

        5、关系运算符重载

        作用:重载关系运算符,可以让两个自定义类型对象进行对比操作

        6、函数调用运算符重载   operator()

        函数调用运算符()也可以重载

        由于重载后使用的方式非常像函数的调用,因此称为仿函数

        仿函数没有固定写法,非常灵活

【C++】 运算符重载_operator+-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值