3 回答
TA貢獻2080條經驗 獲得超4個贊
boost::optional.
如果你提供 nullptr作為論點,你將進入一個不明確的-行為-土地; 引用屬性版本不允許(不容易發現技巧)1的問題。 對于用戶來說,引用屬性版本更容易理解:您必須提供一個有效的對象,而不是可能為NULL的對象。
nullptr
TA貢獻1784條經驗 獲得超2個贊
可以時使用引用,必要時使用指針。
當您不需要“重新處理”時,引用通常比指針更好。這通常意味著引用在類的公共接口中最有用。引用通常出現在對象的皮膚上,指針出現在內部。
上述情況的例外情況是,函數的參數或返回值需要“Sentinel”引用-一個不引用對象的引用。這通常最好是返回/接受一個指針,并賦予空指針這個特殊的意義(引用必須總是別名對象,而不是取消引用的空指針)。
注意:老C行程序員有時不喜歡引用,因為他們提供的引用語義在調用者的代碼中不明確。然而,經過一些C+經驗之后,人們很快就意識到這是一種信息隱藏形式,它是一種資產,而不是一種負債。例如,程序員應該用問題的語言而不是機器的語言來編寫代碼。
- 3 回答
- 0 關注
- 409 瀏覽
添加回答
舉報
