在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);

一只甜甜圈
TA貢獻1836條經驗 獲得超5個贊
艾倫·霍魯布的“足夠的足球射門”列出了以下兩條規則:
120. Reference arguments should always be `const`121. Never use references as outputs, use pointers
他列舉了為什么將引用添加到C ++的幾個原因:
它們是定義復制構造函數所必需的
它們是操作員超載所必需的
const
引用允許您在避免復制的同時具有按值傳遞的語義
他的主要觀點是參考不應該用作“輸出”參數,因為在呼叫站點沒有指示參數是參考還是值參數。所以他的規則是只使用const
引用作為參數。
就個人而言,我認為這是一個很好的經驗法則,因為當參數是輸出參數時它會更清楚。然而,雖然我個人同意這一點,但我確實允許自己受到團隊中其他人的意見的影響,如果他們爭論輸出參數作為參考(一些開發人員非常喜歡它們)。
- 3 回答
- 0 關注
- 647 瀏覽
添加回答
舉報
0/150
提交
取消