提问人:Rex 提问时间:10/10/2018 最后编辑:Rex 更新时间:10/10/2018 访问量:136
不同类的C++向量
C++ vector of different class
问:
所以我正在尝试制作一个 std::vector<>它将包含我的组件:
class Component
{
private:
public:
Component();
void update();
~Component();
};
向量在我的对象类中:
class Object
{
private:
std::vector<?> m_Components;
public:
Object();
void addComponent(? component)
{
m_Components.push_back(component);
}
~Object();
};
所以我尝试使用模板,但它失败了错误:使用变量模板需要模板参数列表
我需要使用模板吗?如果是,如何?感谢您的帮助!
编辑:我的组件派生自 Component 类
答:
1赞
Remy Lebeau
10/10/2018
#1
由于您正在处理多态类,因此您需要使用当前拥有的位置,因为多态性仅适用于指针/引用,并且还要避免切片您添加到 中的任何对象,例如:Component*
?
vector
class Object
{
private:
std::vector<Component*> m_Components;
public:
Object();
void addComponent(Component *component)
{
m_Components.push_back(component);
}
~Object();
};
评论
vector
Component
Component
vector<Component>
vector<Component*>
class Component2 : public Component
class Component : Component
~Component()
virtual
delete
Component*