如标题所示。尝试使用dynamic_cast
时出现此错误不能dynamic_cast'(& OBJ) - >的std ::的reference_wrapper< _TP> ::得到()' (类型'类 MEPObject')键入'类MEPGene&' (目标不是指针或 参考完整类型) genes.push_back(dynamic_cast(obj.get()));
class MEPObject;
class MEPGene;
typedef std::vector<std::reference_wrapper<MEPObject>> MEPObjects;
typedef std::vector<std::reference_wrapper<MEPGene>> MEPGenes;
void dynamicCast(MEPObjects &objects, MEPGenes &genes)
{
for(const auto &obj: objects)
{
genes.push_back(dynamic_cast<MEPGene&> (obj.get()));
}
}
答案 0 :(得分:1)
前向声明是不够的。
需要定义/pages
(查看继承)。