Re[8]: Про указатели в Qt - нравится ли вам?
От: night beast СССР  
Дата: 06.10.23 10:16
Оценка:
Здравствуйте, so5team, Вы писали:

S>Ну т.е. если у нас this -- это какой-то QObject, то конструкция new QLabel(this, "1") создаст QLabel и добавит его в список дочерних для this. При этом указатель на QLabel потеряется, т.к. его передача куда-то не состоится из-за исключения.


не совсем. насколько помню, раньше родителем для виджета произвольный QObject быть не мог, только QWidget.

S>И этот QLabel будет жить до тех пор пока живет this.

S>Но this не обязательно будет удален в результате исключения, как это было сказано: "будет удален при удалении this (что и произойдет при раскручивании стэка при выбросе исключения)"

если предположить что это все происходит в конструкторе, то будет )

S>Т.е. если this переживет исключение, то QLabel останется существовать и когда-то умрет. Но до тех пор будет "фантомом", т.к. к нему никто, по сути, доступа не будет иметь и ничего полезного с ним не сделает.


доступ к нему получить можно, но суть приблизительно такая, да
поэтому в качестве родителя надо подсовывать не произвольный QObject, а что-то более подходящее
Отредактировано 06.10.2023 10:23 night beast . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.