Почему виртуальная функция скрыта?
У меня есть следующие классы:
class A {
public:
virtual void f() {}
};
class B : public A{
public:
void f(int x) {}
};
Если я говорю
B *b = new B();
b->f();
Компилятор сообщает об ошибке C2660: «B :: f»: функция не принимает 0 аргументов. Не должна ли функция в B перегружать ее, поскольку это виртуальная функция? Виртуальные функции скрываются так?
РЕДАКТИРОВАТЬЯ действительно хотел наследовать B от A, который показывает то же самое поведение.