首页 >后端开发 >C++ >如何使用抽象基类和虚拟析构函数在 C 中实现接口?

如何使用抽象基类和虚拟析构函数在 C 中实现接口?

Patricia Arquette
Patricia Arquette原创
2024-12-21 18:40:11595浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn