隱式預設建構子是否初始化內建型別?
雖然編譯器產生的預設建構函式負責初始化類別的成員,但此規則不適用於內建型別。隱式預設建構函式使內建型別成員未初始化。
但是,還有其他初始化類別實例的機制。
值初始化
語法C() 可能看起來調用預設構造函數,但實際上,它執行值初始化,其中:
範例:
class C { public: int x; }; C c; // Compiler-generated default constructor used, x retains garbage
明確初始化
明確 ()初始化程序觸發內建型別和使用者宣告的值初始化
C c = C(); // Value initialization used, x is zero-initialized C *pc = new C(); // Value initialization used, pc->x is zero-initialized
聚合初始化
聚合初始化也會初始化類別實例,而不涉及建構函式。
C c = {}; // x is zero-initialized C d{}; // C++11 aggregate initialization, x is zero-initialized
以上是C 是否在預設建構函式中隱式初始化內建型別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!