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

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

DDD
풀어 주다: 2024-11-22 09:58:10
원래의
710명이 탐색했습니다.

Why Doesn't C   Have Virtual Constructors?

가상 생성자가 C 툴킷의 일부가 아닌 이유

많은 프로그래밍 언어와 달리 C는 프레임워크에 가상 생성자를 포함하지 않습니다. . 이러한 설계 결정의 근거를 밝히려면 가상 호출과 생성자의 고유한 특성을 자세히 조사해야 합니다.

가상 호출을 사용하면 특정 객체 유형이 아닌 알려진 인터페이스를 기반으로 함수 호출이 가능합니다. 이 기능은 다형성 동작을 조정하는 데 매우 귀중한 것으로 입증되었습니다. 그러나 객체를 생성할 때는 객체의 정확한 유형에 대한 정확한 지식이 무엇보다 중요합니다.

C의 설계자인 Bjarne Stroustrup은 이 개념을 간결하게 설명합니다. "가상 호출은 부분적인 정보를 바탕으로 작업을 완료하는 메커니즘입니다. .. 객체를 생성하려면 완전한 정보가 필요합니다... 결과적으로 '생성자 호출'은 가상일 수 없습니다."

가상 생성자가 바람직해 보일 수 있지만 부재 비슷한 결과를 얻는 것을 방해하지 않습니다. 앞서 언급한 FAQ 항목은 명시적인 구현에 의존하지 않고 가상 생성자의 동작을 에뮬레이션하는 실용적인 접근 방식을 제안합니다.

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

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