질문:
컴파일러에서 자동으로 생성되는 기본 생성자를 수행하세요. C에서 내장 유형 초기화 ?
답변:
아니요, 기본 생성자(사용자 정의 생성자가 없는 클래스에 대해 컴파일러에서 생성됨)는 내장 유형의 멤버를 초기화하지 않습니다.
그러나 기본값을 포함하지 않는 클래스 인스턴스 초기화를 위한 다른 메커니즘이 있다는 점에 유의하는 것이 중요합니다. 생성자:
예:
다음 클래스를 고려하세요.
class C { public: int x; };
컴파일러 - C에 제공된 기본 생성자는 초기화되지 않습니다. C::x.
C c; // Compiler-provided default constructor is used // c.x contains garbage
반대로 값 초기화 또는 집계 초기화를 사용하면 C::x:
C c = C(); // Uses value-initialization instead of default constructor // c.x == 0 C d{}; // Aggregate initialization // d.x == 0가 0으로 초기화됩니다.
위 내용은 C의 기본 생성자는 내장 유형 멤버를 초기화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!