gpt4 book ai didi

c++ - QList 清除函数调用是否清除存储在 QList 中的动态分配对象的内存?

转载 作者:太空狗 更新时间:2023-10-29 21:15:01 27 4
gpt4 key购买 nike

所以我有一个名为 AppointmentSchedule 的类,它属于以下类型:

namespace Ui {
class AppointmentSchedule;
}

class AppointmentSchedule : public QWidget
{
Q_OBJECT

public:
explicit AppointmentSchedule(QWidget *parent = 0);
~AppointmentSchedule();
Ui::AppointmentSchedule *ui;
};

该类的ui由两个QLabel对象和两个QDateTimeEdit对象组成。在外部类中,我需要一个 QList 类型为 AppointmentSchedule 的动态分配对象。我会将动态分配的对象附加到 QList 中,类似于以下方式。

QList<AppointmentSchedule*> scheduleList;

foreach (QDate date, dates)
{
AppointmentSchedule * newSchedule = new AppointmentSchedule(this);//Allocation of memory
QDateTime sDateTime(date, QTime(8, 0, 0));
newSchedule->ui->appointmentStartDateTimeEdit->setDateTime(sDateTime);
QDateTime eDateTime(date, QTime(8, 15, 0));
newSchedule->ui->appointmentEndDateTimeEdit->setDateTime(eDateTime);
scheduleList.append(newSchedule);
}

如果我像这样调用 QListclear() 函数:

scheduleList.clear();

它会释放我分配的所有内存吗?

谢谢。

最佳答案

Will it deallocate all the memory I have allocated?

不,clear() 仅从列表中删除所有项目。在您的情况下,这些项目是 AppointmentSchedule 对象上的指针。

当您为 AppointmentSchedule 对象设置父级时,该对象将在其父级被销毁时被删除。这就是为什么你的情况没有内存泄漏。

关于c++ - QList 清除函数调用是否清除存储在 QList 中的动态分配对象的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39124051/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com