C++运算符重载函数作为类成员函数
作为类成员函数时,运算符重载函数使用类的成员变量作为操作数。
写个 demo:
运算符重载函数作为类成员函数时,需要注意:运算符重载函数必须是类的成员函数,不能是普通函数或者全局函数。
C++运算符重载函数作为友元函数
作为友元函数时,运算符重载函数不使用类的成员变量作为操作数,但可以访问类的私有成员变量。
写个 demo:
在将运算符重载函数作为友元函数时,需要注意:运算符重载函数必须是全局函数或者类的友元函数,不能是成员函数。
在 C++ 中,像赋值运算符、下标运算符、函数调用运算符,必须定义为类的成员函数。
而有的运算符则不能定义为类的成员函数,如流插入<<、流提取>>、类型转换运算符。
由于友元的使用会破坏类的封装,因此尽量将运算符函数作为成员函数。
但考虑到综合因素,一般将单目运算符重载为成员函数,将双目运算符重载为友元函数。
下一篇小林计划写:单目运算符重载。