【发布时间】:2019-08-12 21:17:12
【问题描述】:
我想编写一个函数,它将“Armor”类中的一个对象作为参数,但是,当我调用该函数时,我使用了基类“Item”中的一个对象。当然,我使用的这个物件,虽然可能只是一个“物品”,但也可能是一个“盔甲”。只有当我确定它是“Armor”时,我才想调用该函数。
就我而言,我将物品存储在向量中(这些物品可以是盔甲)。我想从向量中获取这个项目并用它调用函数(装备这个项目,我知道这是一件盔甲)。
class Item{
};
class Armor : public Item{
};
void equipArmor(Armor armor){ //Armor class argument
//Equip the armor
}
int main(){
vector<Item> items;
Armor a;
items.push_back(a);
equipArmor(items[0]); //Call function with an "Item" as an argument (even though it is in fact also an "Armor")
}
【问题讨论】:
-
您可能想查找静态和动态演员表。
-
或者在此之前,继承?
-
你的代码中没有显示继承关系。
标签: c++ function class inheritance arguments