Да, вам нужно как-то вручную удалить каждый QDialog
в dialogs_
, если он есть.
Вы можете сами повторить их QSet
и delete
вручную. Поскольку QDialog
наследуется от QWidget
, другим способом является просто delete
родительский элемент всех диалогов, если родительский объект также размещен в бесплатном хранилище, что в свою очередь delete
их.
Обратите внимание, что нет причин выделять QSet
в бесплатном магазине, если вы этим занимаетесь. Вы можете сохранить операцию new
/ delete
, просто сделав ее прямым членом вашего класса.
QSet<QDialog*> dialogs_;
Это еще одна вещь, о которой вам стоит беспокоиться. удаление вручную.