搜尋

首頁  >  問答  >  主體

C++,初始化一个成员变量,最好的方法是定义时初始化,还是在构造函数中初始化?

感觉在构造函数中初始化会有大量的代码,如果成员变量很多的话。。。

PHP中文网PHP中文网2805 天前565

全部回覆(2)我來回復

  • 高洛峰

    高洛峰2017-04-17 15:27:50

    可以參考Bjarne Stroustrup近期撰寫的《CPP Core Guidelines》,其中第C.48條就提到了:

    Prefer in-class initializers to member initializers in constructors for constant initializers

    結論就是優先考慮放到in-class裡面,也就是成員定義的時候就進行初始化。因為如果有多個構造函數,可能會造成不一致,和一些容易誤解的問題。詳細解答參考這裡。

    回覆
    0
  • 黄舟

    黄舟2017-04-17 15:27:50

    看具體的上下文環境而定,一般情況下我建議是存儲申請放到定義時初始化
    其它的單獨一個 Init 函數

    回覆
    0
  • 取消回覆