Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpOpAbInr 82 of 150 menu
◀ ▶

Введение в абстрактные классы в C++

Абстрактный класс в C++ называет действие, которое каждый конкретный потомок обязан реализовать по-своему.

Общий тип Shape описывает фигуру. Площадь у разных фигур считают разными формулами. В базе метод area не имеет тела: в конце объявления пишут = 0. Такой метод называют чистым виртуальным. Формулу пишет потомок. Запишем Shape и Rectangle:

class Shape { public: virtual ~Shape() {} virtual int area() const = 0; }; class Rectangle : public Shape { public: int width; int height; Rectangle(int width, int height) : width(width), height(height) {} int area() const override { return width * height; } };

Создадим объект класса Rectangle и выведем его площадь:

int main() { Rectangle rect(4, 5); std::cout << rect.area() << "\n"; return 0; }

Объект создают у класса-потомка: он подставляет свою реализацию вместо чистого метода родителя. Базовый тип связывает разные фигуры одним именем метода и оставляет детали вычисления наследникам.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить