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

Практика на абстрактный класс в C++

Задачи описывают абстрактный класс с чистым виртуальным методом, двумя конкретными наследниками и общим методом с телом в базе.

Сделайте абстрактный класс Storage с чистым виртуальным методом count. Сделайте классы ListStorage и SetStorage, которые возвращают размер своей коллекции. Выведите оба значения для непустых коллекций.

Дан класс:

class Report { public: virtual std::string title() const = 0; virtual std::string body() const = 0; std::string headline() const { std::string t = title(); for (char& ch : t) { ch = std::toupper(ch); } return t; } };

Сделайте DailyReport с заголовком "day" и телом "ok". Выведите headline и body.

Сделайте абстрактный класс Payment с полем amount в конструкторе и чистым виртуальным методом label. Сделайте классы CardPayment и CashPayment, возвращающие "card" и "cash". Выведите метки для суммы 50.

Сделайте абстрактный класс Shape с чистым виртуальным методом area. Сделайте Rect и Circle. Дан список указателей на Shape из двух фигур. Выведите сумму площадей.

Дан класс:

class Job { public: std::string name; Job(std::string value) : name(value) {} virtual bool run() = 0; std::string describe() { return name + (run() ? ":done" : ":fail"); } };

Сделайте CopyJob, возвращающий true, и MoveJob, возвращающий false. Выведите describe для обоих.

Сделайте абстрактный класс Notifier с чистым виртуальным методом send и методом prefix с телом, который возвращает "msg: ". Сделайте EmailNotifier и SmsNotifier, которые дописывают канал к префиксу. Выведите оба сообщения.

Сделайте абстрактный класс Discount с методом apply(price) в базовом классе, который вызывает чистый виртуальный метод rate. Сделайте HalfPrice со ставкой 0.5. Выведите цену 80 после скидки.

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