操作符的重载
重载操作符必须具有至少一个类类型或枚举类型的操作数。这条规则强制重载操作符不能重新定义用于内置对象的操作符的定义
大多数重载操作符可以定义为普通非成员函数火雷的成员函数
作为类成员的重载函数,其形参看起来不操作数数目少1.作为成员函数的操作符有一个隐含的this形参,限定为第一个操作数。重载一元操作符如果作为成员函数就没有显式形参。
iostream对象不能复制
io操作符必须为非成员函数
一般而言将算术和关系运算定义为非成员函数
类赋值操作符必须是类的成员, 必须返回*this引用
箭头操作符必须定义为类成员函数。解引用操作符不要求定义为成员,但将它作为成员一般也是正确的。
自加和自减更倾向于作为类的成员,并且应该返回引用(前缀)。定义后缀式操作符添加(int),返回复制
标准库定义的函数对象
<functional>头文件中
//
plus<int> add;
int sum = add(4,5);
函数对象适配器
转换操作符
operator type();
转换函数必须是成员函数,不能指定返回类型,并且形参表为空。