Question:
Do default constructors, automatically generated by the compiler, initialize built-in types in C ?
Answer:
No, the default constructor (created by the compiler for classes without user-defined constructors) does not initialize members of built-in types.
However, it's important to note that there are other mechanisms for initializing class instances that do not involve the default constructor:
Example:
Consider the following class:
class C { public: int x; };
The compiler-provided default constructor for C will not initialize C::x.
C c; // Compiler-provided default constructor is used // c.x contains garbage
In contrast, using value-initialization or aggregate initialization will zero-initialize C::x:
C c = C(); // Uses value-initialization instead of default constructor // c.x == 0 C d{}; // Aggregate initialization // d.x == 0
The above is the detailed content of Does C 's Default Constructor Initialize Built-in Type Members?. For more information, please follow other related articles on the PHP Chinese website!