Допустим, у меня есть класс A, B и CВиртуальные функции и параметры по умолчанию
class A{
public:
virtual void f4(){
cerr<<"A::f4()"<<endl;
}
};
class B: public A{
public:
virtual void f4(int n){
cerr<<"B::f4("<<n<<")"<<endl;
}
};
class C: public B{
public:
virtual void f4(int n = 1){
cerr<<"C::f4("<<n<<")"<<endl;
}
};
Если у меня есть:
C c;
A& rac = c;
rac.f4();
Я ожидал, что версия Cи для f4, чтобы назвать, но это не что происходит. Может кто-нибудь объяснить?
Вы имели в виду еще один '}' после строки 'cerr <<" B :: f4 "' ...? –
Да, отредактировал сообщение – js091514