2016-08-03 7 views
0

タイトルと同じです。私はdynamic_castをしようとすると、このエラーを得た参照ラッパーからベクタクラスへのreference_wrapperのベクトルから派生クラスへのベクトルの変換は、動的キャストできません。

'(& OBJ) - >のstd :: reference_wrapper < _Tp> ::取得()' dynamic_castをすることはできません(タイプの 'クラス 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())); 
    } 
} 

答えて

1

前方宣言は十分ではありません。

MEPGeneの定義が必要です(継承を参照)。

関連する問題