我通常对我的代码所需的那些方法使用纯虚函数才能正常工作。因此,我创建接口,然后其他用户实现他们的派生类。派生类只有这些虚函数是公共的,而一些额外的方法应该实现为私有的,因为我的代码没有调用它们。我不知道这是否可以被视为 OOP 的良好实践(是否有任何设计模式?)。无论如何,我的问题是:用户可以重载纯虚函数吗?
IE
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;
在基类中,但非常有限。你有什么想法?