Сокрытие (hiding) функций членов и виртуальные функции
От: Аноним  
Дата: 04.08.05 06:50
Оценка:
Объясните, пожалуйста, почему не вызывается void A::f(double), ведь она подходит лучше?
Разве здесь имеет место сокрытие (hiding) функций членов?

#include <iostream>
struct A
{
    virtual void f(int) { std::cout << "void A::f(int)\n"; }
    virtual void f(double) { std::cout << "void A::f(double)\n"; }
};
struct B : A
{
    virtual void f(int) { std::cout << "void B::f(int)\n"; }
};
int main()
{
    B b;
    b.f(1.);    //почему void B::f(int), а не void A::f(double)
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.