C++的运算符重载:使对象的运算表现得和编译器内置类型一样
文章目录
template
T sum(T a, T b)
{
return a+b; // a.operator+(b)
}
T 现在是我们用类型参数定义的一个类型(可以是任意用户实例化的类型),如果T是编译器内置类型的话(编译器自己就可以完成a+b了),但是如果不是(或者是类类型。则a b是两个对象 )a+b,编译器自己就完成不了了。(需要 进行运算符重载,即a.operator+(b).a调用自己的加法函数,把b作为实参传进去)。因此 在编程的时候,我们不需要写成这样:a.operator+(b),只需要提供+运算符重载, 我们就可以依旧写成统一的a+b(这个T 无论是内置类型还是类类型都是可以直接使用这套代码的)。
operator+()就是+运算符重载的成员函数。
第一节:复数类的实现
普通类型实现:
class CComplex
{
public: