インターフェイスといくつかの実装があります。しかし、ある実装では、その実装でのみ使用する特定の機能があります。
class Interface
{
virtual void foo() = 0;
}
class D1 : public Interface
{
void foo() {}
}
class D2 : public Interface
{
void foo() {}
void bar() {}
}
したがって、D2::bar() 関数は D2 にのみあり、D2 実装のみに指定されています。OOPを使用してそのようなものを書く正しい方法は何ですか?
私のクライアント コードでは、Interface* i; という呼び出しがあります。i->foo();
ただし、「i」が D2 の場合、場合によっては bar() 関数を呼び出す必要があります。