В языке C++ наследование и полиморфизм — очень важные понятия. Эта тема довольно обширна, для её понимания необходимо хорошо уяснить для себя, как объекты реального мира соотносятся с объектами в языке, как и когда происходит создание и уничтожение объектов, как работать с памятью, ссылками, указателями и зачем необходимы списки инициализации. Не лишним будем знание стандартных контейнеров, умных указателей и понимание смысла константности.
Напишем класс Pancake. Добавим три поля: радиус блинчика, толщину и сорт муки. Конструктор этого класса снабдим списком инициализации. Последний штрих — напишем функцию print().
class Pancake
{
public:
Pancake(int radiusMm, int thicknessMm, int flourSort) :
radiusMm_(radiusMm),
thicknessMm_(thicknessMm),
flourSort_(flourSort)
{
}
void print() const
{
std::cout << "Pancake." << std::endl;
}
protected:
unsigned radiusMm_; // RRRRRRRR RRRRRRRR RRRRRRRR RRRRRRRR
unsigned thicknessMm_; // TTTTTTTT TTTTTTTT TTTTTTTT TTTTTTTT
char flourSort_; // SSSSSSSS 00000000 00000000 00000000
};