내 메서드 매개 변수에서 unique_ptr을 공유 포인터 벡터에 푸시 백하는 데 어려움을 겪고 있습니다.공유 ptrs 벡터에 push_back unique_ptr 매개 변수를 사용하는 방법
는 IFCCB.h:
private:
vector<shared_ptr<IFC>> m_shpVectorIFC;
public:
void addElementVectorIFC(unique_ptr<IFC> rupIFC);
IFCCB.cpp :
void IFCCB::addElementVectorIFC(unique_ptr<IFC> rupIFC)
{
m_shpVectorIFC.push_back(std::unique_ptr<IFC>(new IFContent(rupIFC)));
}
I 오류 받고 있어요 : IFO는의 계층 구조로 부모이 경우
C2664: 'IFC::IFC(const IFC &)' : cannot convert argument 1 from 'std::unique_ptr>' to 'IFO *'
입니다 IFC. 왜 그걸보고 있는지 나는 잘 모르겠습니다.
나는 vector info과 shared_ptr info과 함께 using unique_ptr with standard library containers을 보았습니다.
아이디어가 있으십니까? shared_ptrs 및 unique_ptrs를 사용하는 데 익숙하지 않습니다.
하드 말해,하지만 오류가 있다는 것입니다처럼 나에게 보인다 'IFContent' 생성자는'unique_ptr'을 허용하지 않습니다. –
IFC 생성자에는 IFO * 매개 변수가 있습니다. 그러나 IFC의 기본 생성자가 IFC를 허용해서는 안됩니까? (BTW는 오타입니다 ... IFCt가 지금 IFC로 변경되고 있습니다). – Michele
'rupIFC' 인수로 정말로 새로운 객체를 만들고 싶습니까? 아니면 그것을 작동시키지 못했기 때문입니까? 그냥'rupIFC'를 컨테이너에 넣으시겠습니까? –