C++ 传指针还是引用?
生活随笔
收集整理的這篇文章主要介紹了
C++ 传指针还是引用?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
????? 用C++做了一段時間畢業設計了,突然有一天被困在傳指針還是傳引用的問題上。后來翻看了《C++ 編程規范》,并結合了項目實際情況,總結出下面結論:
傳指針
- 如果函數保存了地址。例:復制地址給類成員變量、把地址保存在函數內靜態局部變量中。
- 如果參數是可以選的。例:允許傳入NULL值。
傳引用
- 如果函數沒有保存地址。例:僅修改了參數引用對象。
- 如果參數是不可選的,并且要求必須提供有效對象做參數。
????? 如果函數保存了地址,可能在以后直接使用或者修改地址指向的對象。如果使用傳引用的話,調用者不知道需要在棧(stack)還是在堆(heap)上分配引用對象資源。一旦調用者傳入的引用對象是在棧上,編譯器自動回收后,函數保存的地址將不再有效!
????? 而函數保存了地址時使用傳指針,就在提示調用者傳入的指針參數指向的對象應當分配在堆上。
????? 當然也有推薦全部使用傳指針的,理由是傳值和傳引用容易使調用者混淆。我不贊同這個觀點,我打算按照上述規則重新修改畢業設計。
總結
以上是生活随笔為你收集整理的C++ 传指针还是引用?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QCon归来之总结
- 下一篇: 傻瓜教程:asp.net(c#) 如何配