Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Кстати, техника «конверта» и «письма» — это практически в чистом виде классический плюсовый smart pointer.Не совсем. Здесь конверт и письмо — это один и тот же класс. А умный указатель — это отдельный класс, который вообще ничего не знает о типе объекта, который в нём хранится.
В производных классах техник FireSkill, WoodSkill и т.д. конструкторы по умолчанию закрыты, но базовый класс Skill объявлен как friend, что позволяет создавать объекты этих классов только внутри класса Skill.
void Skill::Make (void (Skill::*foo)())
{
for (size_t i = 0; i < mLetters.size(); ++i)
(mLetters[i]->*foo)();
}
...skills[i]->Make(&Skill::Foo);
Виртуальный конструктор