Присутствие метода в производном классе скрывает все методы с тем же именем (независимо от параметров) в базовых классах. Это сделано для предотвращения проблем как это:
class A {} ;
class B :public A
{
void DoSomething(long) {...}
}
B b;
b.DoSomething(1); // calls B::DoSomething((long)1));
, чем позже кто-то изменяет класс A:
class A
{
void DoSomething(int ) {...}
}
теперь внезапно:
B b;
b.DoSomething(1); // calls A::DoSomething(1);
, Другими словами, если это не работало как это, несвязанное изменение в классе, Вы не управляете (A), мог тихо влиять, как Ваш код работает.
Попробуйте это
Отредактируйте на основе ответа: новая ссылка Прокрутите вниз до раздела Параметры ,