Re: Виртуальные функции и базовый класс
От: rg45 СССР  
Дата: 17.08.12 14:03
Оценка: :)
Здравствуйте, Аноним, Вы писали:

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


  Скрытый текст
А>
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", то ее код ничем бы не отличался. Так что мешает компилятору ее использовать?


Да, C++ после C# — это как реальность после сна. С пробуждением!
--
Справедливость выше закона. А человечность выше справедливости.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.