C 멤버는 정적이면서 가상일 수 있나요?
C에서는 멤버를 정적과 가상 모두 선언할 수 없습니다. static virtual member()와 같은 선언 컴파일; 오류가 발생합니다.
그러나 다음 방법을 사용하면 비슷한 효과를 얻을 수 있습니다.
예는 다음과 같습니다.
<code class="cpp">struct Object { static const TypeInformation& GetTypeInformation(); virtual const TypeInformation& GetTypeInformation() const; }; struct SomeObject : public Object { static const TypeInformation& GetTypeInformation(); virtual const TypeInformation& GetTypeInformation() const override; };</code>
이렇게 하면 객체(객체->) 모두에서 GetTypeInformation()을 호출할 수 있습니다. ;GetTypeInformation()) 및 클래스(SomeObject::GetTypeInformation()). Object::GetTypeInformation()은 기본 클래스 구현을 반환하고 SomeObject::GetTypeInformation()은 재정의된 버전을 호출합니다.
위 내용은 C 멤버는 정적 멤버이자 가상 멤버일 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!