Sobrecarga de função virtual pura

Eu costumo usar funções virtuais puras para os métodos que são exigidos pelo meu código para funcionar bem. Portanto, eu crio interfaces e, em seguida, outros usuários implementam suas classes derivadas. As classes derivadas têm apenas essas funções virtuais como públicas, enquanto alguns métodos adicionais devem ser implementados como privados, já que meu código não os chama. Eu não sei se isso pode ser considerado como uma boa prática de POO (existe algum padrão de design?). De qualquer forma, minha pergunta é: um usuário pode sobrecarregar uma função virtual pura?

isto é

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
 };

Uma solução poderia ser:

 virtual void foo(int,double,double=0)=0;

na classe base, mas é muito limitado. O que você pensa sobre?

questionAnswers(6)

yourAnswerToTheQuestion