Вызов вирутальной приватной функции
От: LowCoder  
Дата: 22.04.11 18:12
Оценка: :))
Тут меня спросили что будет если объявить виртуальную функцию приватной. Я подумал и решил что либо она будет недоступна дибо вызовится функция базового класса. Оказалось что нет!

Вот кодик


#include <iostream>
using namespace std;
class A
{
public:
    virtual void f()
    {
        cout << "Class A" << endl;
    }
};


class B: public A
{
private:
    virtual void f()
    {
        cout << "Class B" << endl;
    }
};

int main(int argc, char** argv) 
{

    A *a = new B;
    a->f();
}



Вывод: Class B



Вопрос — а пааачему? (компилятор gc++)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.