Виртуальные функции и базовый класс
От: Аноним  
Дата: 16.08.12 20:25
Оценка: :))) :))
Здравствуйте! Объясните, плз, почему функции базового класса не привязываются к виртуальным функциям интерфейса?

class I
{
public:
    virtual void f1(void) = 0;
};

class A
{
public:
    void f1(void) { /*...*/ }
};

class B : public A, public I
{
    //...
};

main()
{
    B b;
}


В итоге будет выдана ошибка о том что класс "B" абстрактный т.к. f1 не определена. Но почему? Чисто технически, если бы f1 была определена в "B" а не в "A", то ее код ничем бы не отличался. Так что мешает компилятору ее использовать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.