编程语言
首页 > 编程语言> > C++基础学习第八课(运算符重载)

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);

标签:第八课,操作数,函数,成员,C++,运算符,重载,op
来源: https://blog.csdn.net/kdnnnd/article/details/114307959