0

純粋な仮想プライベート メソッドを使用して抽象クラスを作成したいのですが、それを具象クラスに実装できません。私のオプションは、その純粋な仮想プライベートメソッドを保護することですが、具象クラスではそれをプライベートのみにしたいと考えています。お気に入り、

class IFoo
{
public:
    IFoo(){}
    virtual ~IFoo(){}

protected:
    virtual void fooMethod() = 0;
};

class Foo : public IFoo
{
public:
    Foo(){}
    virtual ~Foo(){}

private:
    virtual void fooMethod() {}
};

これを行う意味はありますか?それともこれでいいの?

ありがとう!

4

1 に答える 1

2

基本クラスでメソッドをプライベートにできないのはなぜですか? それらを非公開にすることは、C++ の非常に標準的な設計パターンです。次に、基本クラスは、プライベート メソッドを呼び出す public/protected メソッドを実装します。

http://www.gotw.ca/publications/mill18.htmには、パブリック/プライベート/保護された仮想メソッドの使用に関する詳細情報があります。

于 2013-10-20T07:15:41.867 に答える