C++基础学习第八课(运算符重载)

第八课

1,意义:

·运算符重载,就是赋予运算符新的含义,和函数重载一样,一个函数名可以用来代表不同功能的函数;·

·运算符重载是为了解决类对象之间的运算符,通常的运算符只用于算术运算,如常量int之间,因为编译器已经定义了,而一个类两个对象之间成员进行运算必须重新定义,让编译器在遇到对象运算时能按我们要求进行运算

2,运算符重载限制

1,可以重载的运算符

算术运算符:+ - * / %
自增、自减运算符:++ –
位运算符:| & ~ ^ << >>
关系运算符:== != < ><= >=
赋值运算符:= += -= /= %= |= ^= <<= >>=
单目运算符:+ - * &
动态内存分配:new delete new[] delete[]
其他运算符() -> . []
逻辑运算符:|| && !

2,不能重载的运算符

成员访问运算符:.
域运算符:::
成员指针访问运算符:.* ->*
长度运算符:sizeof
条件运算符:? :
预处理符号:#
3,运算符重载规则

1,重载运算符函数可以对运算符作出新的解释,但原有基本语义不变;

·不改变运算符的优先级;

·不改变运算符的结合性;

·不改变运算符所需要的操作数;

·不能创建新的运算符;

4,运算符重载语法
返回类型 类名::operator op(参数列表)
{
    //对应运算符的操作
}
注意:一个运算符被重载后,原有意义没有失去,只是定义了相对特定类的一个新运算符;
5,运算符重载的两种方法

1,运算符可以重载为两种函数,成员函数或友元函数;

2,两种形式的选择时机

·左操作数(或者只有左操作数时),是本类的对象时,可选成员函数形式;

·左操作数不是本类的对象,必须采用非成员函数形式,一般是友元函数;

·一般单目运算符最好被重载为成员函数,双目运算符重载为友元函数;

·具有可交换性的双目运算符最好两种形式都有(成员函数时适用左操作数为本类对象,友元函数时适用左操作数为其他类的对象);

6,单目运算符重载

·二元运算符:

ObjectL op ObjectR //ObjectL为左操作数 ,ObjectR为右操作数,op为运算符;

·重载为成员函数,解释为:

Object.operator op(ObjectR) ;

·重载为友元函数:

operator op(ObjectL,ObjectR);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值