Всем доброго времени суток.
Вопрос вот по такому коду:
class A
{
public:
virtual void foo();
}
class B: public A
{
public:
virtual void foo()
{
/*do something*/
A::foo();
}
}
void foo2()
{
A* a = new B();
a->foo();
}
Что-то я сутра не могу вспонить, вызовется все же функция A::foo() или будет бесконечная рекурсия B::foo().
Всем заранее спасибо за ответы.
P.S. Еще подобный вопрос, если есть в наличии класс A2, который наследуется от A, а B наследуется от A2. При этом A2::foo() не имеет реализации.