我有一个接口和一些实现。但在一个实现中,我有一个指定功能,仅在该实现中使用。
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 编写这类东西的正确方法是什么?
在我的客户端代码中,我有一个电话:Interface* i; i->foo();
但如果它是“i”中的 D2,在某些情况下我需要调用 bar() 函数。