3月10日
1、运算符重载
1)加法运算符重载:
对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。
成员函数重载:
全局函数重载:
运算符重载的函数重载:
注意:(1)对于内置的数据类型的表达式的运算符是不可能改变的
(2)不要滥用运算符重载
2)左移运算符重载
注意不能使用成员函数去重载左移运算符,无法实现,其实质是p.operator<<(cout) ;无法实现cout在左侧。
此时,因为<<被重载,如果在cout<<p1后面再加一个换行符<<endl会出错,有如下解决方案:
3)递增运算符重载(++)
使++能让自己定义的数据类型也能进行++操作;
4)重载赋值运算符
注意上面代码无法实现连等,若想实现p3=p2=p1,还需要将其重载函数的返回值做修改,如下:
5)关系运算符重载:可以实现两个自定义数据类型的对比操作
6)函数调用运算符重载()
由于重载后调用的方式非常像函数的调用,因此称为仿函数;
仿函数非常灵活,可根据我们的需求来写任意的返回类型、传入数据类型、执行的操作等。