struct B {
void f( char );
void f( std::string );
};
struct D : B {
void f(int) { f('c'); } // получаем рекурсивный вызов D::f(int)
};Однако, если мы хотим оставить функцию(или несколько функций) базового класса, а не скрывать её, то можно написать using B::f;
struct D : B {
using B::f;
void f( int ) { f('c'); } // вызывается B::f(char)
};