首页 > 代码库 > 2017/03/16学习笔记

2017/03/16学习笔记

//
void oper(int a,int b) const ;==>void oper(const className* const this,int a,int b);

运算符重载

所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能,因此,一个函数名就可以用来代表不同的功能函数,也就是一名多用。
运算符也可以重载。实际上,我们已经不知不觉中使用了运算符重载。如,大家都习惯用加法运算符"+"对整数、浮点数进行加法运算 5+8、5.8+3.67等,其实计算机对整数 和浮点数的加法操作过程很不相同,但由于C++已经对运算符“+”进行了重载,所以就能适用于 int float double类型的运算。
又如"<<"是C++的位运算符,但在输出操作中又是与流对象cout配合使用的流插入运算符

运算符重载的本身是一个函数.

重载运算符函数可以对运算符做出新的解释,但原有基本语义不变。
不改变运算符的优先级
不改变运算符的结合性
不改变运算符需要的操作数
不能创建新的运算符

运算符函数是一种特殊的成员函数或友元函数

运算符重载的两种方法:

可以用友元函数或成员函数重载运算符
运算符函数可以重载为成员函数或友元函数
关键区别在于成员函数具有this,友元函数没有this指针。
不管是成员函数还是友元函数重载,运算符的使用方法相同。
但传递参数的方式不同,实现代码不同,应用场合也不同.

2017/03/16学习笔记