0

这个问题很好地解释了如何在 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()
        {
            //do stuff
        }
};

不过,我不清楚一件事:我需要这门课Parent做什么?

4

2 回答 2

4

除了接口之外,您不需要继承任何东西来使用接口,但是您可以这样做,并且该答案向您展示了如何。关键是您不需要只从一个或多个接口继承,您还可以添加类作为类的基础 - 几乎允许类和接口的任何组合。

于 2013-03-28T08:08:15.423 回答
1

其实我也不知道,为什么。您也可以执行以下操作:

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

class Child : public IDemo
{
public:
    virtual void OverrideMe()
    {
        //do stuff
    }

    ~Child()
    {
    }            
};

一切都只取决于你的程序的架构以及实际ParentChild是什么。看 C# 示例 -IDisposable是一个接口,它允许处理实现它的类使用的资源。要求基类是没有意义的——它甚至会使使用IDisposable更难使用,因为也许我不想要基类的功能(尽管事实上,每个 .NET 类都派生自 .NET Object,但那是另一回事了)。

如果您提供有关实际程序架构的更多信息,我们也许可以判断是否需要基类。

还有一点值得指出。请记住,在 C++ 中,IDemo 实际上是一个类,仅从您的角度来看它是一个接口。所以在我的例子中, Child 实际上一个基类。

于 2013-03-28T08:30:56.377 回答