내장 유형이 기본 생성자를 보유합니까?
C의 기본 유형에 생성자가 없다는 개념은 논쟁의 대상이었습니다. 이 주장은 "기본 생성자"라는 용어와 내장 유형의 동작에 대한 잘못된 이해에서 비롯됩니다.
기본 생성자와 값 초기화
기본 생성자는 다음과 같습니다. 다른 초기화 방법이 지정되지 않은 경우 개체의 멤버 변수를 초기화하는 멤버 함수입니다. 흥미롭게도 내장 유형은 유사한 동작을 나타내므로 일부에서는 기본 생성자가 있다고 가정합니다. 그러나 이 가정은 올바르지 않습니다.
내장 유형: 생성자 부재
기본 유형에는 전통적인 의미의 명시적 생성자가 없습니다. 대신 기본값(예: int의 경우 0)을 할당하는 프로세스인 값 초기화를 수행합니다. 이 프로세스는 생성자 호출이 아닙니다. 오히려 이는 언어 정의 작업입니다.
구문 및 동작: 생성자 모방
C 11의 균일한 초기화 구문 도입으로 기본 유형을 초기화하는 기능이 도입되었습니다. 생성자에 일반적으로 사용되는 구문(예: int x{5}) 이 구문은 생성자 사용의 착각을 일으키지만 여전히 값 초기화입니다.
Bjarne Stroustrup의 설명
C의 창시자인 Bjarne Stroustrup은 이러한 개념이 흐려짐을 인정합니다. 그는 내장 유형이 생성자와 유사한 동작으로 인해 "생성자를 갖는 것으로 간주"한다고 제안합니다.
결론
결론적으로, 내장 유형은 생성자를 갖지 않습니다. 전통적인 의미에서 기본 생성자를 보유합니다. 값 초기화로 알려진 초기화 프로세스는 생성자의 동작을 모방하는 별도의 프로세스입니다. C 11에 도입된 균일한 초기화 구문은 이러한 구별을 더욱 모호하게 만들어 일부 사람들은 내장 유형의 동작을 기본 생성자의 존재로 잘못 돌리게 합니다.
위 내용은 내장 C 유형에는 기본 생성자가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!