암시적 기본 생성자가 내장 유형을 초기화합니까?
컴파일러에서 생성된 기본 생성자는 클래스 멤버 초기화를 담당하지만 이 규칙은 내장 유형에는 적용되지 않습니다. 암시적 기본 생성자는 내장 유형 멤버를 초기화되지 않은 상태로 둡니다.
그러나 클래스 인스턴스를 초기화하는 대체 메커니즘이 있습니다.
값 초기화
구문 C()는 기본 생성자를 호출하는 것처럼 보일 수 있지만 실제로는 값 초기화를 수행합니다. which:
예:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!