1.4参数传递与返回值(2)

来源:互联网 发布:手机淘宝不能改评价吗 编辑:程序博客网 时间:2024/06/05 19:04

继续分析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 




0 0
原创粉丝点击