Sovrascrivere la funzione di sovraccarico di una base in C ++

Possibile duplicato:
Risoluzione di sovraccarico C ++

Mi sono imbattuto in un problema in cui, dopo che la mia class aveva annullato una funzione della sua class base, tutte le versioni sovraccaricate delle funzioni venivano nascoste. È questo di progettazione o sto facendo qualcosa di sbagliato?

Ex.

class foo { public: foo(void); ~foo(void); virtual void a(int); virtual void a(double); }; class bar : public foo { public: bar(void); ~bar(void); void a(int); }; 

ciò che segue darebbe un errore di compilazione dicendo che non c’è una (doppia) funzione nella barra.

 main() { double i = 0.0; bar b; ba(i); }