У меня есть следующие классы:
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 не перегружает ее, так как это виртуальная функция? Виртуальные функции скрываются так?
EDIT: я действительно хотел унаследовать B от A, который показывает то же поведение.