initialize C++類成員的默認值是什麼




struct initialize c++ (2)

是的,有一個。 如果使用默認構造函數初始化對象並使用括號,則POD成員將初始化為零:

someClass * p = new someClass();

結構成員和c ++中類成員的默認值是什麼,以及這些規則如何不同(例如,類/結構/基元/等之間)? 是否存在關於默認值的規則不同的情況?


在C ++中,這方面的結構和類之間沒有區別。 它們都被稱為類類型

在一般情況下,類類型的成員沒有默認值。 為了使類成員獲得確定性值,必須對其進行初始化 ,這可以通過以下方式完成

  • 成員本身的默認構造函數
  • 封閉類的構造函數初始化列表
  • 顯式指定封閉類的對象的初始化程序(包括值初始化和使用聚合初始化程序初始化)。

此外,具有靜態存儲持續時間的所有對像在程序啟動時都是零初始化的。

除了上述情況之外,類成員再次沒有默認值,並且最初將包含不可預測的垃圾值。





default-value