Top.Mail.Ru
Уведомления
Очистить все

[Решено] QVector из объектов своего класса, error: use of deleted function

(@dafna)
Level 1

Не могу собрать проект, возникает куча ошибок из серии:

C:\Qt\5.15.2\mingw81_32\include/QtCore/qvector.h:818:5: error: use of deleted function 'UserManager::UserManager(UserManager&&)'

У меня есть свой класс UserManager, в другом классе массив объектов:

QVector<UserManager> users;

При получении данных от пользователя добавляю:

users.append(UserManager());

Вот после добавления этой строки проект перестает собираться. Подскажите, в чем дело...

Цитата
Создатель темы Размещено : 02.11.2023 19:30
Aveal
(@aveal)
Top level Admin

При добавлении в QList/QVector и т. д. создается копия объекта, а для QObject:

изображение

UserManager наследует от QObject?

ОтветитьЦитата
Размещено : 03.11.2023 11:52
(@dafna)
Level 1

Запись от: @aveal

UserManager наследует от QObject?

да, верно... А как тогда быть?

 

ОтветитьЦитата
Создатель темы Размещено : 03.11.2023 13:24
Aveal
(@aveal)
Top level Admin

@dafna Указатели можно хранить как вариант:

QVector<UserManager*> users;
ОтветитьЦитата
Размещено : 03.11.2023 14:14
(@dafna)
Level 1

@aveal А через смарт-поинтеры возможно?

ОтветитьЦитата
Создатель темы Размещено : 03.11.2023 14:35
Aveal
(@aveal)
Top level Admin

@dafna Да, конечно:

QVector< QSharedPointer<UserManager> > users;
users.append(QSharedPointer<UserManager>(new UserManager()));
ОтветитьЦитата
Размещено : 03.11.2023 15:08
(@dafna)
Level 1

@aveal Спасибо! Так и сделаю.

ОтветитьЦитата
Создатель темы Размещено : 03.11.2023 17:40
Поделиться: