8+6i
-2-2i
3+3i
在上面这个程序中,加号和减号操作符由成员函数变成了友元函数。细心的读者可能注意到了,那个赋值操作符的定义跑哪儿去了?
事实上,赋值操作符有点类似于默认拷贝构造函数,也具有默认的对象赋值功能。所以即使没有对它进行重载,也能使用它对对象作赋值操作。但是如果要对赋值操作符进行重载,则必须将其作为一个成员函数,否则程序将无法通过编译。
在操作符重载中,友元的优势尽显无遗。特别是当操作数为几个不同类的对象时,友元不失为一种良好的解决办法。
又见加加和减减
在第五章我们学习了增减量操作符,并且知道它们有前后之分。那么增减量操作符是如何重载的呢?同样是一个操作数,它又是如何区分前增量和后增量的呢?前增量操作符是“先增后赋”,在操作符重载中我们理解为先做自增,然后把操作数本身返回。后增量操作符是“先赋后增”,在这里我们理解为先把操作数的值返回,然后操作数自增。所以,前增量操作返回的是操作数本身,而后增量操作返回的只是一个临时的值。










