C2248-将QScopedPointer传递给函数时,无法访问私有成员

C2248 - No access to private member when passing QScopedPointer to function

本文关键字:访问 成员 QScopedPointer 函数 C2248-      更新时间:2023-10-16

我在这段代码中得到以下错误。

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中声明的私有成员

通读其他帖子没有帮助。

QScopedPointer没有公共复制构造函数。它不能按值传递,也不能存储在要求其元素可复制的容器中(noteEvents可能是可复制的,这取决于它的声明方式)。