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++ 的一种非常标准的设计模式。然后基类实现调用私有方法的公共/受保护方法。

http://www.gotw.ca/publications/mill18.htm有更多关于使用 public/private/protected 虚拟方法的信息。

于 2013-10-20T07:15:41.867 回答