所以我试图制作一个std :: vector <>来包含我的组件:
class Component
{
private:
public:
Component();
void update();
~Component();
};
向量在我的Object类中:
class Object
{
private:
std::vector<?> m_Components;
public:
Object();
void addComponent(? component)
{
m_Components.push_back(component);
}
~Object();
};
所以我尝试使用模板,但是失败了:错误模板的使用需要模板参数列表
我需要使用模板吗?如果是,怎么办?谢谢您的帮助!
编辑:“我的组件”派生自Component类
答案 0 :(得分:1)
由于您正在处理多态类,因此您需要在当前拥有Component*
的地方使用?
,因为多态只适用于指针/引用,并且还要避免#649任何对象您添加到vector
中,例如:
class Object
{
private:
std::vector<Component*> m_Components;
public:
Object();
void addComponent(Component *component)
{
m_Components.push_back(component);
}
~Object();
};