C++的运算符重载:使对象的运算表现得和编译器内置类型一样
如下代码,如果T是整形,那很好理解,但是如果 T 是一个 Student 类, a + b ?怎么操作,两个学生类怎么相加?
这个就是我们要说的运算符重载问题
template
T sum(T a,T b){
return a + b; // a.+(b) => a.operator+(b) operator+ 就是我们需要的函数
}
[code]CComplex operator+(const CComplex &lhs, const CComplex &rhs){ reutrn CComlex(lhs.x+rhs.x,lhs.y+rhs.y); // 由于不能再类外访问CComplex的私有成员,所以我们可以加上友元 // 在CComplex 加上 firend CComplex operator+(const CComplex &lhs, const CComplex &rhs);}ostream & operator |