>백엔드 개발 >C++ >C의 내장 유형에는 실제로 기본 생성자가 있습니까?

C의 내장 유형에는 실제로 기본 생성자가 있습니까?

DDD
DDD원래의
2024-12-26 21:27:10437검색

Do Built-in Types in C   Actually Have Default Constructors?

내장 유형에 기본 생성자가 있습니까?

기본값으로 인해 int()가 0을 산출한다는 기사를 읽은 후 질문이 생겼습니다. 생성자, 기본 유형에는 본질적으로 생성자가 없다는 믿음으로 이어집니다. 그러나 "TC PL"의 섹션 10.4.2에서는 내장 유형이 기본 생성자를 소유한다고 주장합니다.

Bjarne Stroustrup의 응답

명백한 불일치에 대해 문의할 때 , Bjarne Stroustrup은 내장 유형에는 실제 생성자 호출이 없음을 명확히 했습니다. 대신에 마치 그렇게 하는 것처럼 동작하고 생성자와 같은 표기법이 컴파일러에 의해 해석됩니다.

Technical Answer

엄밀히 말하면 그렇지 않습니다. 내장 유형에는 기본 생성자가 없습니다.

기능적 고려 사항

실제 생성자가 없음에도 불구하고 내장 유형을 초기화하는 구문은 생성자 호출과 매우 유사합니다. 초기화 시 중괄호({})를 사용하면 정수(int{0}) 및 괄호로 묶인 표현식(int a{b})의 복사본을 0으로 초기화할 수 있습니다.

결론

내장 유형에는 기본 생성자가 없지만 초기화 구문과 동작은 해당 유형의 존재를 에뮬레이트합니다. 그들은 초기화와 값 할당을 허용하는 기본 생성자와 복사 생성자를 갖고 있는 것처럼 보입니다. 이 의사 생성자 메커니즘은 초기화를 단순화하고 코드 가독성을 높입니다. 그러나 이러한 유형에는 실제 생성자가 부족하다는 점을 인식하는 것이 중요합니다.

위 내용은 C의 내장 유형에는 실제로 기본 생성자가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:왜 `다음 기사:왜 `