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

Чистый виртуальный метод в C++

У абстрактного метода нет своего тела. Он нужен, чтобы потомки обязательно написали свою реализацию.

В объявлении пишут virtual, после списка параметров ставят = 0.

Тело метода в базовом классе не допускается. Запишем абстрактный User с чистым методом увеличения дохода:

#include <string> class User { public: virtual ~User() {} std::string name; User(std::string name) : name(name) {} virtual void increaseRevenue(int value) = 0; }; class Employee : public User { public: int salary; Employee(std::string name, int salary) : User(name), salary(salary) {} void increaseRevenue(int value) override { salary += value; } };

Создадим объект класса Employee и увеличим ему зарплату:

int main() { Employee employee("john", 1000); employee.increaseRevenue(100); std::cout << employee.salary << "\n"; return 0; }

Родитель не решает, что именно увеличивать у сотрудника или студента - он только фиксирует имя операции. Конкретная арифметика живет в классах-потомках.

Добавьте в ваш класс Figure чистые виртуальные методы для площади и периметра фигуры.

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