This question很好地解释了如何在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
?
答案 0 :(得分:4)
除了界面之外,你不需要继承任何东西来使用界面,但是你可以这样做,而答案会告诉你如何。关键是你不需要只从一个或几个接口继承,你也可以添加类作为你的类的基础 - 几乎任何类和接口的组合都是允许的。
答案 1 :(得分:1)
实际上,我不知道为什么。您也可以执行以下操作:
class IDemo
{
public:
virtual ~IDemo() {}
virtual void OverrideMe() = 0;
};
class Child : public IDemo
{
public:
virtual void OverrideMe()
{
//do stuff
}
~Child()
{
}
};
一切都取决于您的程序架构以及实际Parent
和Child
的内容。查看C#示例 - IDisposable
是一个接口,它允许人们处理类所使用的资源,从而实现它。要求基类是没有意义的 - 它甚至会使使用IDisposable
更难使用,因为我可能不需要基类功能(尽管事实上,每个.NET类都派生自{{1} },但这是另一个故事。)
如果您提供有关实际程序架构的更多信息,我们可以判断是否需要基类。
还有另一件值得指出的事情。请记住,在C ++中,IDemo实际上是一个类,它只是从您的角度来看的界面。所以在我的例子中,Child实际上有基类。