C++編程規範之25:正確選擇通過值、(智能)指針、或者引用傳遞參數
摘要:
正確選擇參數:分清輸入參數、輸出參數,分清值參數和引用參數。正確地傳遞參數。
正確選擇參數是通過值、通過引用還是通過指針傳遞,是一種能夠最大程度提高安全性和效率的好習慣。
選擇如何傳遞參數時,應該遵循一下準則。對於隻輸入參數:
1.始終用const限製所有指向隻輸入參數的指針和應用。
2.優先通過值來取得原始類型(如char、float)和複製開學比較低的值對象(如point、complex<float>)的輸入。
3.優先按const的引用取得其他用戶定義類型的輸入;
4.如果函數需要其參數的副本,則可以通過值傳遞代替
對於輸出參數或者輸入/輸出參數:
1.如果參數是可選的(這樣調用者可以傳遞null表示“不適用的”或“無需關心的”值),或者函數需要保存這個指針的副本或者操控參數的所有權,那麼應該優先通過(智能)指針傳遞;
2.如果參數是必須的,而且函數無需保存指向參數的指針,或者無需操控其所有權,那麼應該優先通過引用傳遞。這表明參數是必須的,而且調用者必須提供有效對象。
最後更新:2017-04-03 12:53:54