Как QT управляет памятью с помощью умных указателей? Мое приложение должно быть сбойC++

Программы на C++. Форум разработчиков
Anonymous
Как QT управляет памятью с помощью умных указателей? Мое приложение должно быть сбой

Сообщение Anonymous »

Надеюсь, этот вопрос найдет вас хорошо. Я немного озадачен этим. Я действительно не понимаю, как дерево модели объекта QT обрабатывает память с помощью умных указателей. ,
Вот Код: < /p>
child.h
#ifndef CHILD_H
#define CHILD_H

#include
#include

class Child : public QObject
{
Q_OBJECT
public:
explicit Child(QObject *parent = nullptr) : QObject{parent}
{
qDebug()
Когда Программа выходит из сфера действия, в процессе уничтожения моего статического Qlist его элементы родителей QsharedPointers сначала будут уничтожены. Ребенок - это указатель Qshared внутри родительского указателя. Следовательно, он будет автоматически удалять, потому что это интеллектуальный указатель с отсчета ссылок до 0. < /P>
Тогда мой родительский класс будет уничтожен. QWIDGET с наследниками от QObject, QT будет применять механизм разрушения дерева объектов. Что означает, что QT автоматически удалит детей родителей, которые уже должны быть уничтожены QsharedPointer выше ...
Мой вопрос: почему мое приложение не рухнет?

Подробнее здесь: https://stackoverflow.com/questions/794 ... e-crashing

Вернуться в «C++»