快速问题。我有一大堆继承类的,像这样:创建继承对象的方法
Object_____
| |
Actor Item
|
|_______
Human Animal
我也已经定义,像这样一个所谓的房间,等级:
class Room
{
Object * addObject (unsigned long _UID, string _name);
map<int, Object *> objects; // A map containing the Objects within the room
}
我希望做的是使函数addObject()
能够实例化任何类型的对象类,例如Room.addObject(Object::Actor::Human)
,然后将人类对象添加到房间中的对象列表中。如果有帮助,它们都有相同的构造函数参数。有没有办法在C++中做到这一点?
让我们从“对象”映射只能存储“对象”的实例开始,而不是其任何派生类的实例。 –
“对象”的类型是什么。我怀疑你正在忍受切片。 –
对不起,'objects'应该是'Object *'的映射。 – Sean