Я заранее извиняюсь за то, что являюсь новичком в OO-программировании.Как передать производный класс, если вы знаете только базовый класс?
У меня есть базовый класс Hero, с тремя производными классами Archer, Warrior и Mage. Пользователю предлагается выбрать один из них и создать объект соответствующего производного класса. Они имеют разные начальные значения и функции-члены, а следующий шаг - передать этот объект другой функции.
Предположим, что функция называется battle(), и она принимает объект в качестве аргумента. Как мне это сделать? Должен ли я создать три отдельных боя() или есть способ передать объект без необходимости определять производный класс?
void Hero::init(string job)
{
if (job == "archer")
Archer archer;
else if (job == "mage")
Mage mage;
else
Warrior warrior;
battle(); // What to put as argument?
}
std :: shared_ptr и std :: make_shared, похоже, не компилируются. Я использую последнюю версию Code Blocks. – geft
@geft Вам нужно '# включить'' '' файл. –
0x499602D2