【发布时间】:2012-08-26 00:24:36
【问题描述】:
我有一个接口和一些实现。但在一种实现中,我有一个指定功能,仅在该实现中使用。
class Interface
{
virtual void foo() = 0;
}
class D1 : public Interface
{
void foo() {}
}
class D2 : public Interface
{
void foo() {}
void bar() {}
}
所以我只有在 D2 中有一个 D2::bar() 函数,并且它仅指定用于 D2 实现。 使用 OOP 编写这类东西的正确方法是什么?
在我的客户端代码中,我有一个电话: 接口* i; i->foo();
但如果是“i”中的 D2,在某些情况下我需要调用 bar() 函数。
【问题讨论】:
-
你是从 Interface 继承 D1 和 D2 吗?
-
是的,对不起,我忘了继承。固定。
-
必须在
Interface中定义virtual析构函数,否则有危险。
标签: c++ oop interface implementation