가상 생성자가 C 툴킷의 일부가 아닌 이유
많은 프로그래밍 언어와 달리 C는 프레임워크에 가상 생성자를 포함하지 않습니다. . 이러한 설계 결정의 근거를 밝히려면 가상 호출과 생성자의 고유한 특성을 자세히 조사해야 합니다.
가상 호출을 사용하면 특정 객체 유형이 아닌 알려진 인터페이스를 기반으로 함수 호출이 가능합니다. 이 기능은 다형성 동작을 조정하는 데 매우 귀중한 것으로 입증되었습니다. 그러나 객체를 생성할 때는 객체의 정확한 유형에 대한 정확한 지식이 무엇보다 중요합니다.
C의 설계자인 Bjarne Stroustrup은 이 개념을 간결하게 설명합니다. "가상 호출은 부분적인 정보를 바탕으로 작업을 완료하는 메커니즘입니다. .. 객체를 생성하려면 완전한 정보가 필요합니다... 결과적으로 '생성자 호출'은 가상일 수 없습니다."
가상 생성자가 바람직해 보일 수 있지만 부재 비슷한 결과를 얻는 것을 방해하지 않습니다. 앞서 언급한 FAQ 항목은 명시적인 구현에 의존하지 않고 가상 생성자의 동작을 에뮬레이션하는 실용적인 접근 방식을 제안합니다.
위 내용은 C에는 왜 가상 생성자가 없나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!