Главная

Главная

Сообщество

Сообщество

Форум

Форум

STM32

STM32

Электроника

Электроника

Raspberry Pi

Raspberry Pi

Уведомления
Очистить всё

[Решено] 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 MT
(@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 MT
(@aveal)
Top level Admin

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

QVector<UserManager*> users;

ОтветЦитата
Опубликовано : 03.11.2023 14:14
(@dafna)
Level 1

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


ОтветЦитата
Автор темы Опубликовано : 03.11.2023 14:35
Aveal MT
(@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
Обзор конфиденциальности

На этом сайте используются файлы cookie, что позволяет нам обеспечить наилучшее качество обслуживания пользователей. Информация о файлах cookie хранится в вашем браузере и выполняет такие функции, как распознавание вас при возвращении на наш сайт и помощь нашей команде в понимании того, какие разделы сайта вы считаете наиболее интересными и полезными.