在 C++ 中有没有办法将类型(例如类)作为参数传递给函数?
解释为什么我需要这个:有一个抽象data
类和一个manager
类。该类manager
包含 的派生类的对象列表(或在本例中为映射)data
。我在这个问题unique_ptr
的答案中提到过这个。
class Data{}; // abstract
class Manager
{
map<string, unique_ptr<Data>> List;
};
现在想象一下我想为data
管理器添加一个新的存储。
class Position : public Data
{
int X;
int Y;
}
我怎么能告诉经理创建该类型的对象并引用unique_ptr
它?
Manager manager;
manager.Add("position data", Position);
在这种情况下,我需要将类传递Position
给管理器类的add
函数,因为我不想先创建一个实例然后将其发送给管理器。
然后,我怎样才能将该类的对象添加到List
?
我不确定在 C++ 中是否有办法做到这一点。如果这不能轻松完成,我真的很想看到一个解决方法。非常感谢!