C의 가상 생성자: Demystified
가상 생성자 개념이 C 프로그래밍 언어와 다른 이유는 무엇입니까? 이 질문은 많은 사람들을 당황하게 만들었고 이제 이 수수께끼에 대한 답을 공개할 때입니다.
C의 선구자인 Bjarne Stroustrup에 따르면 가상 생성자는 객체 생성의 본질과 모순되기 때문에 개념적으로 실현 가능하지 않습니다. 가상 호출은 호출되는 객체의 특정 유형이 완전히 알려지지 않은 상황을 처리하도록 설계되었습니다. 그러나 객체를 생성하려면 필요한 정확한 유형에 대한 지식이 필요합니다. 따라서 가상 생성자의 목적 자체가 객체 생성의 기본 메커니즘과 상충됩니다.
유사한 기능을 달성하기 위해 Stroustrup은 고유한 제한 없이 가상 생성자의 동작을 모방하는 대체 접근 방식을 제안합니다. 이 해결 방법에는 런타임 중에 유형 확인을 허용하는 "이중 디스패치"라는 방법을 활용하는 것이 포함됩니다.
위 내용은 C에서 가상 생성자가 불가능한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!