molecular
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте, столкнулся с таким замешательством. Мы учили C++ на первом курсе, нам говорили, что описывать чисто-виртуальную функцию нельзя, так как она указывается на абстракцию класса. Также это сказано и на вики. На втором курсе попался преподаватель, который утверждает обратное... что можно описать pure virtual func и вызвать ее. Код: #include <iostream> using namespace std; class base { public: virtual void func() = NULL{ cout << "Base" << endl; } }; class derived : public base { public: void func() { cout << "Derived" << endl; } }; void main() { derived b; b.func(); // Вызываем функцию, описанную в производном классе b.base::func(); // Вызываем функцию описанную в базовом классе system("pause"); } | Что мы в итоге получаем: - базовый класс остается абстрактным - описанную чисто-виртуальную функцию мы также можем вызвать |