> 백엔드 개발 > C++ > 본문

C에는 왜 가상 생성자가 없나요?

Mary-Kate Olsen
풀어 주다: 2024-11-18 07:23:02
원래의
856명이 탐색했습니다.

Why Doesn't C   Have a Virtual Constructor?

C에는 가상 생성자가 있나요?

다른 언어와 달리 C에는 가상 생성자가 없습니다. 이로 인해 다음과 같은 질문이 제기되었습니다.

창조주가 직접 답변

C의 아버지인 Bjarne Stroustrup이 통찰력 있는 설명을 제공합니다.

"가상 호출은 부분적인 정보를 바탕으로 작업을 완료하는 메커니즘입니다. [...] 객체를 생성하려면 완전한 정보가 필요합니다. [...] 결과적으로, 생성자에 대한 호출은 가상일 수 없습니다."

개념 이해

본질적으로 가상 함수는 동적 바인딩을 허용하므로 코드가 다양한 유형의 개체와 상호 작용할 수 있습니다. 정확한 수업을 알지 못한 채. 그러나 객체를 생성하려면 인스턴스화할 유형에 대한 정확한 정보가 필요하므로 가상 생성자를 개념적으로 불가능하게 만듭니다.

대체 접근 방식

가상 생성자 C는 유사한 기능을 달성하기 위한 대체 접근 방식을 제공합니다. Stroustrup의 FAQ 항목은 가상 생성자 없이 원하는 동작을 달성하는 방법을 보여주는 이러한 솔루션에 대한 코드를 제공합니다.

위 내용은 C에는 왜 가상 생성자가 없나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿