// virtpure.cpp // Чистая виртуальная функция #include using namespace std; class Base //базовый класс { public: virtual void show() = 0; //чистая виртуальная //функция }; ////////////////////////////////////////////////// class Derv1 : public Base //порожденный класс 1 { public: void show() { cout << ?Derv1\n?; } }; ////////////////////////////////////////////////// class Derv2 : public Base //порожденный класс 2 { public: void show() { cout << ?Derv2\n?; } }; ///////////////////////////////////////////////// int main() { // Base bad; //невозможно создать объект //из абстрактного класса Base* arr[2]; //массив указателей на //базовый класс Derv1 dv1; //Объект производного класса 1 Derv2 dv2; //Объект производного класса 2 arr[0] = &dv1; //Занести адрес dv1 в массив arr[1] = &dv2; //Занести адрес dv2 в массив arr[0]->show(); //Выполнить функцию show() arr[1]->show(); //над обоими объектами return 0; }