亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在C ++中通過引用傳遞指針是否有好處?

在C ++中通過引用傳遞指針是否有好處?

C++ C
LEATH 2019-07-29 10:11:41
在C ++中通過引用傳遞指針是否有好處?在C ++中通過引用傳遞指針有什么好處?最近,我看到一些例子選擇通過指針傳遞函數參數而不是通過引用傳遞。這樣做有好處嗎?例:func(SPRITE *x);隨叫隨到func(&mySprite);與func(SPRITE &x);隨叫隨到func(mySprite);
查看完整描述

3 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

一個指針可以接收一個NULL參數,一個參數參數不能。如果您有可能想要傳遞“無對象”,則使用指針而不是引用。


此外,通過指針傳遞允許您在調用站點顯式地查看對象是通過值還是通過引用傳遞:


// Is mySprite passed by value or by reference?  You can't tell 

// without looking at the definition of func()

func(mySprite);


// func2 passes "by pointer" - no need to look up function definition

func2(&mySprite);


查看完整回答
反對 回復 2019-07-29
?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

艾倫·霍魯布的“足夠的足球射門”列出了以下兩條規則:

120. Reference arguments should always be `const`121. Never use references as outputs, use pointers

他列舉了為什么將引用添加到C ++的幾個原因:

  • 它們是定義復制構造函數所必需的

  • 它們是操作員超載所必需的

  • const 引用允許您在避免復制的同時具有按值傳遞的語義

他的主要觀點是參考不應該用作“輸出”參數,因為在呼叫站點沒有指示參數是參考還是值參數。所以他的規則是只使用const引用作為參數。

就個人而言,我認為這是一個很好的經驗法則,因為當參數是輸出參數時它會更清楚。然而,雖然我個人同意這一點,但我確實允許自己受到團隊中其他人的意見的影響,如果他們爭論輸出參數作為參考(一些開發人員非常喜歡它們)。


查看完整回答
反對 回復 2019-07-29
  • 3 回答
  • 0 關注
  • 647 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號