私は通常、コードが正常に機能するために必要なメソッドに純粋仮想関数を使用します。したがって、私がインターフェイスを作成し、他のユーザーが派生クラスを実装します。派生クラスにはこれらの仮想関数のみがパブリックとして含まれていますが、追加のメソッドはコードで呼び出されないため、プライベートとして実装する必要があります。これが OOP の優れた実践と見なされるかどうかはわかりません (設計パターンはありますか?)。とにかく、私の質問は: ユーザーは純粋な仮想関数をオーバーロードできますか?
すなわち
class Base
{
public:
Base();
virtual ~Base();
virtual void foo(int,double)=0;
};
class Derived:
public Base
{
private:
// methods
public:
Derived();
virtual ~Derived();
virtual void foo(int, double, double); //this doesn't work
};
解決策は次のとおりです。
virtual void foo(int,double,double=0)=0;
基本クラスですが、非常に限られています。についてどう思いますか?