在 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中文網其他相關文章!