一、运算符重载的基本方法
2 、运算符重载的基本方法
运算符重载必须针对自定义数据类型进行,即运算符的操作数至少一个
为类(或结构)的对象。运算符的重载有两种形式:重载为类的成员函
数或重载为类的友元函数。
当运算符重载为类的成员函数时,函数的参数个数比原来运算符的参数
个数要少一个(后缀 ++ 、 -- 除外);当重载为类的友元函数时,参数个
数与原运算符的参数个数相同。
假设某个类已重载了二元运算符“ +” 和一元运算符“ -” (取负),且 c1
, c2 是该类的对象,则对“ c1+c2;” ,编译器首先尝试将其解释
为“ c1.operator+(c2);” ,即对类的成员函数 operator+() 的调用,若类没
有该成员函数,编译器再尝试将其解释为“ operator+(c1,c2);” ,即对友元
函数 operator+() 的调用。
对于“ -c;” ,编译器首先尝试将其解释为“ c.operator-();” ,即对类的成员
函数 operator-() 的调用,若没有该成员函数,编译器再尝试将其解释
为“ operator-(c1);” ,即对友元函数 operator-() 的调用。
评论0