由於我是面向對象編程的初學者,我很抱歉。如果只知道基類,那麼如何傳遞派生類?
我有一個名爲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似乎沒有編譯。我正在使用最新版本的代碼塊。 – geft
@geft您需要'#include'''文件。 –
0x499602D2