Возможно ли иметь QList QScopedPointer некоторого абстрактного класса?

Я хочу иметь QList или же QVector в классе, который имеет постоянное число типа элемента QScopedPointer< SomeAbstractClass >, Я мог бы легко использовать что-то вроде этого:

QList<QScopedPointer<SomeClass> listClass;
listClass.append(QScopedPointer<SomeClass>(new SomeClass()));

Но в QScopedPointerКонструктор копирования отключен, и мы не можем создать экземпляр абстрактного класса.

Конечно, я мог бы легко использовать QSharedPointer но по некоторым причинам я не хочу этого делать, так что я могу сделать?

Редактировать:
Вот мой пример кода, и я получил эту ошибку:

class someAbsClass{
public:
someAbsClass(){}
virtual void fcn()=0;
};

class someClass : public someAbsClass{
public:
someClass(){}
void fcn(){
std::cout << "fcn" << std::endl;
}
};int main(){
QVector<QScopedPointer<someAbsClass> > VectorPtrAbss(1);
VectorPtrAbss[0].reset(new someClass());
}

error: 'QScopedPointer<T, Cleanup>::QScopedPointer(const QScopedPointer<T, Cleanup>&) [with T = someAbsClass; Cleanup = QScopedPointerDeleter<someAbsClass>]' is private
Q_DISABLE_COPY(QScopedPointer)
^

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]