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