运算符重载概念:
对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型
运算符重载的同时也可以发生函数重载
1.加号运算符重载
1.1加号运算符重载的本质
1.2运算符重载也可以发生函数重载
总结1:对于内置的数据类型的表达式的的运算符是不可能改变的
总结2:不要滥用运算符重载
2.左移运算符重载
不会利用成员函数来重载<<运算符,因为无法实现cout在左侧
因此只能利用全局函数重载左移运算符
总结:重载左移运算符配合友元可以实现输出自定义数据类型
3.递增运算符重载
前置递增一定要返回引用
后置递增一定要返回值
4.赋值运算符重载
C++编译器至少给一个类添加4个函数
1.默认构造函数(无参,函数体为空)
2.默认析构函数(无参,函数体为空)
3.默认拷贝构造函数,对属性进行值拷贝4.赋值运算符operator=,对属性进行值拷贝
5.关系运算符重载
作用:重载关系运算符,可以让两个自定义类型对象进行对比操作
6.函数调用运算符重载
函数调用运算符()也可以重载
由于重载后使用的方式非常像函数的调用,因此称为仿函数
仿函数没有固定写法,非常灵活