首頁 > 後端開發 > C++ > 如何使用抽象基底類別和虛擬析構函數在 C 中實作介面?

如何使用抽象基底類別和虛擬析構函數在 C 中實作介面?

Patricia Arquette
發布: 2024-12-21 18:40:11
原創
600 人瀏覽過

How Do I Implement Interfaces in C   Using Abstract Base Classes and Virtual Destructors?

在 C 中實作介面

問題:
如何在 C 中建立表示介面的類別?它只是一個抽象基底類別嗎?

答案:

除了前面受訪者介紹的用於定義介面的純虛擬方法的概念之外,還可以考慮添加一個虛擬方法混合析構函數。這使您能夠將指標的所有權傳遞給另一方,同時隱藏底層的特定衍生類別。雖然違反直覺,但將函數宣告為虛擬函數和內聯函數是允許的。

class IDemo
{
public:
    virtual ~IDemo() {}
    virtual void OverrideMe() = 0;
};

class Parent
{
public:
    virtual ~Parent();
};

class Child : public Parent, public IDemo
{
public:
    virtual void OverrideMe()
    {
        // Implementation details
    }
};
登入後複製

請注意,明確析構函數體是可選的。一些編譯器在優化空析構函數方面遇到了困難,因此通常最好依賴預設實作。

以上是如何使用抽象基底類別和虛擬析構函數在 C 中實作介面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板