将受保护的方法从抽象类更改为私有混凝土类

我想创建一个具有纯虚拟私有方法的抽象类,但是我无法在具体的类中实现它。 我的选择是使这种纯粹的虚拟私人方法得到保护,但在具体的课堂上,我想让它只是一个私人的方法。 喜欢,

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

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

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

private:
    virtual void fooMethod() {}
};

有没有这样做的含义? 或者这很好?

谢谢!


为什么你不能在基类中使这个方法是私有的? 使它们变为私有是C ++的一个非常标准的设计模式。 然后基类实现调用私有方法的公共/受保护方法。

http://www.gotw.ca/publications/mill18.htm有更多关于公共/私人/受保护的虚拟方法的使用信息。

链接地址: http://www.djcxy.com/p/27731.html

上一篇: Change Protected Method From Abstract Class to Private In Concrete Class

下一篇: Why does C++ not allow inherited friendship?