내장 유형에 생성자가 있나요?
임시 int가 0으로 값 초기화되는 경우 int()가 호출하기 때문인가요? 기본 생성자? 내장 유형에는 생성자가 없기 때문에 이것은 일반적인 오해입니다.
값 초기화와 기본 생성자 비교
비교적 최근 개념인 값 초기화는 해당 유형에 적합한 값을 가진 임시 개체입니다. 내장 유형의 경우 정수의 경우 이 값은 0입니다.
TC PL의 설명
TC PL의 섹션 10.4.2에는 내장 유형에도 기본값이 있다고 명시되어 있습니다. 생성자. 그러나 이 진술은 C 98 및 C 03의 맥락에서 틀림없이 부정확합니다.
Bjarne Stroustrup의 설명
Bjarne Stroustrup은 개인적으로 연락했을 때 다음과 같은 사항을 고려한다고 밝혔습니다. 실제 생성자 호출이 없음에도 불구하고 개념적인 의미에서 생성자를 갖는 형식입니다. 이 개념화는 값 초기화와 같은 생성자와 유사한 동작을 기반으로 합니다.
결론
기술적으로 내장 유형에는 생성자가 없습니다. 그러나 이를 초기화하는 데 사용되는 구문(예: int{5}, int{})은 생성자의 구문과 동일합니다. 따라서 실용적인 목적을 위해 내장 유형을 값 초기화 중에 해당 값을 적절하게 초기화하는 기본 생성자가 있다고 생각하는 것이 합리적입니다.
위 내용은 C의 내장 유형에는 생성자가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!