首頁 >後端開發 >C++ >初始化列表與構造函數主體:您應該使用哪種 C 構造函數語法?

初始化列表與構造函數主體:您應該使用哪種 C 構造函數語法?

Linda Hamilton
Linda Hamilton原創
2024-12-03 14:23:17887瀏覽

Initializer List vs. Constructor Body: Which C   Constructor Syntax Should You Use?

建構函式中的初始化語法:初始化清單與建構子主體

在 C中,您有兩個選項來初始化類別成員變數:建構子:

  • 初始化清單:

    public: Thing(int _foo, int _bar): member1(_foo), member2(_bar) {}
  • 建構子正文:

    public: Thing(int _foo, int _bar) {
      member1 = _foo;
      member2 = _bar;
    }

比較

雖然兩種語法看起來很相似,但對於非POD(簡單的Old Data) 成員類型。

在初始化列表語法中,成員變數在建構函式體執行。這意味著具有非預設建構函數的非 POD 成員保證被正確初始化。

在建構函式體語法中,成員變數在建構函式體之後初始化。如果非 POD 成員沒有預設建構函數,這可能會導致雙重初始化和編譯錯誤。

預設參數處理

預設參數在兩種語法。您可以在初始化清單和建構函式主體中使用預設參數。

結論

對於非 POD 成員類型,建議使用初始化列表語法因為它可以確保正確的初始化並防止潛在的錯誤。

以上是初始化列表與構造函數主體:您應該使用哪種 C 構造函數語法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn