[задачка] Virtual functions & default args
От: Юрий Жмеренецкий ICQ 380412032
Дата: 27.08.09 12:07
Оценка: :)
Навеяно топиком "virtual inline"...

#include <iostream>
using namespace std;

struct A
{
  virtual void f(int a = 1) {
    cout << "A::f(" << a << ")" << endl;
  }
};

struct B : A
{
  virtual void f(int a = 2) {
    cout << "B::f(" << a << ")" << endl;
  }
};

void g(A* p) {
  p->f();
}

int main()
{
  B b;
  g(&b);
}

1) Должен ли этот код компилироваться?
2) Если да, то что (и почему) будет напечатано при выполнении?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.