Практика по абстрактным классам в C++
Сделайте абстрактный класс Figure,
представляющий геометрическую фигуру.
Пусть от него наследуют Circle,
Rectangle и Square.
В Figure объявите чистые виртуальные
методы площади и периметра. Реализуйте их
в Circle, Rectangle
и Square.
Сделайте абстрактный класс User
с приватным полем name и методами
getName и setName.
Сделайте Employee и Student,
наследующие от User.
Добавьте в User чистый виртуальный
метод increaseRevenue и реализуйте
его в Employee и Student.
Добавьте в User метод printName
с телом. Создайте Employee
и Student, задайте имя
и вызовите у них printName.
Сделайте User с конструктором имени,
Employee с конструктором имени
и зарплаты, Student с конструктором
имени и стипендии. Имя передавайте
в конструктор родителя.
Создайте по одному объекту Employee
и Student, вызовите у них
increaseRevenue и выведите
итоговую зарплату и стипендию.
Сделайте абстрактный Document
с чистым виртуальным методом render.
Сделайте PdfDocument
и HtmlDocument, возвращающие
из render свою строку.
Добавьте в Document метод title
с общим заголовком и чистый виртуальный
метод formatName. Реализуйте
formatName в каждом наследнике.