C에서는 정적이면서 가상인 멤버 함수를 직접 정의하는 것이 불가능합니다. "정적 가상 멤버()"를 선언하려고 하면 컴파일러에서 오류가 발생합니다. 그러나 동등한 기능을 달성하는 기술이 있습니다.
정적 가상 멤버 함수의 동작을 에뮬레이션하려면 다음 접근 방식을 고려하세요.
<code class="cpp">struct Object { struct TypeInformation; static const TypeInformation &GetTypeInformation() { return GetTypeInformationImpl(); } protected: virtual const TypeInformation &GetTypeInformationImpl() const = 0; };</code>
여기서 GetTypeInformation() 함수는 정적으로 정의되고 TypeInformation 유형에 대한 상수 참조를 반환합니다. 그러나 이 함수의 실제 구현은 보호된 가상 함수 GetTypeInformationImpl()을 통해 파생 클래스에 위임됩니다.
위 내용은 C에서 정적 멤버 함수가 가상일 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!