基类型矢量,不能将派生类型添加到矢量

时间:2014-05-01 09:46:11

标签: c++

我有一个继承自IEffect

的类
class EffectPosition3NormalColor : public IEffect
{
    //code
}

然后我创建一个IEffect *

的向量
vector<IEffect*> Effects;

尝试向此向量添加元素

Effects.push_back(new Position3NormalColor());

失败并显示以下错误消息

cannot convert from 'Position3NormalColor *' to 'IEffect *'

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

Position3NormalColor显然不是公开派生于IEffect

请注意,您只发布了EffectPosition3NormalColor的代码,而不是Position3NormalColor