C++笔记 --运算符重载介绍

运算符重载

1.重载
  • 重载是指赋予新的含义
  • c++允许在同一作用域内的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载
    • **函数重载:**可以让一个函数名有多重功能,在不同情况下进行不同的操作
    • **运算符重载:**赋予同一个运算符多重不同功能
  • 在同一作用域内可以声明多个功能类似的同名函数,但是这些函数的形参(个数、类型、顺序)必须至少有一样不同,不能是返回值不同。
2.运算符重载
  • 并不是所有运算符都可以被重载

  • 可重载运算符

    +  -  *  /  %  ^  &  |  ~  !  =  <  >  +=  -=  *=  /=  %=  ^=  &=  |=  <<  >>  <<=  
    + >>=  ==  !=  <=  >=  &&  ||  ++  --  ,  ->  ()  []  new  new[]  delete  delete[]
    
  • 不可重载的运算符

    sizeof  :?   .  .*  ->*  ::   #
    
  • 重载不能改变运算符的优先级结合性

  • 重载运算符不会改变用法

  • 运算符重载函数不能有默认参数

  • 运算符重载函数既可以作为类的成员函数,也可以作为全局函数

  • 一般情况下,单目运算符最好重载为类的成员函数,双目运算符最好重载为友员函数**

  • 类型转换函数只能定义为一个类的成员函数而不能定义为类的友员函数

  • 若一个运算符的操作需要修改对象的状态,选择重载为成员函数比较好

  • 若运算符所需操作数(尤其是第一个操作数)希望有隐式类型转换,则只能选择友员函数

  • 当运算符函数是一个成员函数时,最左边的操作数(或者只有最左边的操作数)必须是运算符类的一个类对象(或者是类对象的引用),若左边的操作数必须是一个不同类的对象,或者是一个内部类型的对象,该运算符必须作为一个友员函数来实现

  • 当需要重载运算符具有可交换性时,选择重载为友员函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mahuifa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值