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>
這允許您在物件(object->)上呼叫GetTypeInformation() ;GetTypeInformation()) 和類別(SomeObject::GetTypeInformation::GetTypeInformation(GetTypeInformation::GetTypeInformation::GetTypeInformation ())。 Object::GetTypeInformation() 將傳回基底類別實現,而 SomeObject::GetTypeInformation() 將呼叫重寫版本。
以上是C成員可以同時是靜態和虛擬嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!