1.4参数传递与返回值(2)
继续分析complex类
·返回值传递:return by value vs. return by reference
(在每一个影响效率的细节上注意将其内化为自己的习惯)
doapl: do assignment plus.
尽量选择return by reference。
·friend (友元)
友元函数可以自由取得private中的成员。
Note: C++中注重封装,友元在一定程度上打破了封装。
·同一个class的各个objects互为friends(友元)
上图为用第二个对象处理第一个对象。
·复习:
data一定放在private里面。
参数尽可能使用pass by reference。
返回值尽可能使用return by reference。
在类的body中的函数,应该加const的要加const。
构造函数中的,尽量使用初始化列表initialization list .
·下面为 什么情况下不能使用return by reference 。
1.如果函数中创建的变量等,在函数结束后它就会消失,这种情况不能return by reference。
如: return c1 + c2;//该语句就只能使用pass by value;
所以就是说 返回的是函数中创建的空间时,需要使用return by value。而返回的是函数外创建的空间时,则可以使用pass by reference 。
除了这种情况,其他情况都可以使用return by reference 。