Удалит ли деструктор по умолчанию объект, хранящийся в классе в виде ссылки?

67
19 февраля 2022, 15:00

Если поле класса хранит ссылку на объект, удалит ли деструктор по умолчанию объект, на который ссылается поле?

Answer 1

Нет, ведь ссылка не обязательно указывает на объект, созданный new.

Деструктор по умолчанию только вызывает деструкторы всех полей и базовых классов, если они есть.

Answer 2

Деструктор вызывается при смерти обьекта. Если обьект А хранит ссыльку на обьект В, то при уничтожении обьекта А вызовится его деструктор, который не обязательно должен уничтожать объект В(деструктор по умолчанию точно это не сделает), если только вы так не захотите(часто это плохая идея). А если объект В не находится в динамической памяти, то никакой деструктор не сможет его уничтожать. P.S. Тут главное заботится о том, чтобы обьект В не был удален раньше чем А станет не нужным.

READ ALSO
Как переместить существующий контрол в другое окно

Как переместить существующий контрол в другое окно

Задача - показать контрол в полноэкранном режимеРешил создавать полноэкранное окно перемещать туда контрол, а при закрытии этого окна возвращать...

158
Как подкючить библиотеку [muParser] к Qt?

Как подкючить библиотеку [muParser] к Qt?

Мне нужно будет подключить библиотеку muParser (GitHub) к Qt Creator

101
Не удается подключиться к бд

Не удается подключиться к бд

Пишу в LinuxНеобходимо подключиться к Access бд,но Qtговорит что нет такого драйвера QODBC, хотя в предложенных он имеется

213
Найти кратчайший путь [закрыт]

Найти кратчайший путь [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

81