2016-08-03 3 views
0

제목과 동일합니다. 나는 dynamic_cast는 노력이 오류가 발생했습니다참조 래퍼의 벡터를 기본 클래스에 벡터의 참조 래퍼에서 파생 클래스로 변환 할 수 없습니다.

'(& OBJ) -> 표준 : 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의 정의가 필요합니다 (상속 참조).