Имеется класс:
#include <QObject>
class Item : public QObject{
Q_OBJECT
private:
QString m_name;
uint m_properties;
public:
explicit Item (QString _name, uint _properties, QObject *parent = 0);
~Item();
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
QString name() const;
void setName (QString name);
Q_PROPERTY(uint properties READ properties WRITE setProperties NOTIFY propertiesChanged)
uint properties() const;
void setProperties(uint properties);
signals:
void nameChanged();
void propertiesChanged();
};
В другом классе есть метод, допустим он вызывается 10 раз:
void Create::addItem()
{
QList <Item *> dataItem;
dataItem << new Item ("name1",0) << new Item ("name2",0) <<
new Item ("name3",0) << new Item ("name4",0) <<
new Item ("name5",0) << new Item ("name6",0) <<
new Item ("name7",0) << new Item ("name8",0) <<
new Item ("name9",1);
itemModel->addDataItem(dataItem);
}
В классе ItemModel есть метод, так же будет вызван 10 раз:
void ItemModel::addDataItem(QList<Item *>_data)
{
dataItemList.append(_data);
}
В классе ItemModel переменная dataItemList объявлена как
QList<QList<Item *>> dataItemList;
В ней должно хранится 10 листов в кажлм из 10 по 9 объектов класса Item.
Так вот, в какой-то момент времени у объектов класса Item вызывается деструктор, и уже dataItemList указывает на освобождённую память. Как обойти данную проблему, чтобы Qt не удалял данные объекты, а удалил их я когда мне это будет нужно?
Огромное спасибо за разъяснения.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть ли возможность в GLFW обработать сообщение WM_PAINT? Если да, то как? Нужно мне это для того, чтобы рисовать не в цикле, а по получению сообщенияНапример,...
Я не понимаю почему выскакивают эти ошибки помогите пожалуйста C2371 'IP_OPTION_INFORMATION': redefinition; different basic types C2371 'ICMP_ECHO_REPLY': redefinition; different basic types C2371 'IP_OPTION_INFORMATION':...
Вам нужен конструктор для класса pop, который принимает один параметр типа intВы в вашем return пытаетесь использовать именно его, но создать его...