2013-08-24 5 views
1

이 코드에서 다음 오류가 발생합니다.C2248 - 함수에 QScopedPointer를 전달할 때 개인 멤버에 액세스 할 수 없음

QScopedPointer<NoteEvent> onEvent(new NoteEvent(date, chan, pitch, vel, true)); 
QScopedPointer<NoteEvent> offEvent(new NoteEvent(date + dur, chan, pitch, vel, false)); 
Score::noteStream->addNoteEvent(onEvent); 
Score::noteStream->addNoteEvent(offEvent); 


void NoteStream::addNoteEvent(QScopedPointer<NoteEvent> noteEvent) 
{ 
    noteEvents->push_back(noteEvent); 
} 

오류 : C2248 : "QScopedPointer"다른 게시물을 통해 읽기 QScopedPointer

에 선언 private 멤버에 액세스 할 수 없음은 도움이되지 않았습니다.

답변

4

QScopedPointer에는 공용 복사본 생성자가 없습니다. 값으로 전달하거나 요소를 복사 할 수있는 컨테이너에 저장할 수 없습니다 (noteEvents은 신고 방법에 따라 다를 수 있음).

+1

대신 SharedPointer를 사용하는 것이 적절한 대체 방법 인 것으로 보입니다. – user2052244