天天看點

C++程式設計規範之25:正确選擇通過值、(智能)指針、或者引用傳遞參數

摘要:

    正确選擇參數:厘清輸入參數、輸出參數,厘清值參數和引用參數。正确地傳遞參數。

    正确選擇參數是通過值、通過引用還是通過指針傳遞,是一種能夠最大程度提高安全性和效率的好習慣。

    選擇如何傳遞參數時,應該遵循一下準則。對于隻輸入參數:

    1.始終用const限制所有指向隻輸入參數的指針和應用。

    2.優先通過值來取得原始類型(如char、float)和複制開學比較低的值對象(如point、complex<float>)的輸入。

    3.優先按const的引用取得其他使用者定義類型的輸入;

    4.如果函數需要其參數的副本,則可以通過值傳遞代替

    對于輸出參數或者輸入/輸出參數:

    1.如果參數是可選的(這樣調用者可以傳遞null表示“不适用的”或“無需關心的”值),或者函數需要儲存這個指針的副本或者操控參數的所有權,那麼應該優先通過(智能)指針傳遞;

    2.如果參數是必須的,而且函數無需儲存指向參數的指針,或者無需操控其所有權,那麼應該優先通過引用傳遞。這表明參數是必須的,而且調用者必須提供有效對象。

繼續閱讀