-27 / 55 / 9
Регистрация: 29.09.2011
Сообщений: 609
|
||||||
1 | ||||||
Когда надо удалять объект07.12.2019, 18:58. Показов 1182. Ответов 9
Метки нет (Все метки)
Если объект создаётся по ссылке оператором new, его надо удалять. А если он создаётся внутри функции и возвращается как её аргумент, в другой функции, в которой он становится переменной, тоже обязательно удалять самому?
Пример.
0
|
07.12.2019, 18:58 | |
Ответы с готовыми решениями:
9
Когда надо использовать списки инициализации, а когда можно заменить их констуктором по умолчанию? при вызове конструктора присваивания надо возвращать ссыль на объект или сам объект. Смысл? Значения нужных полей меняютмся и без этого! Динамический объект не содержит в себе линамических членов. Удалять ли его? Как удалить массив, созданный в динамической памяти? Или не надо его удалять? |
-27 / 55 / 9
Регистрация: 29.09.2011
Сообщений: 609
|
|
07.12.2019, 19:04 [ТС] | 3 |
Когда нужен объект, лежащий по этому адресу - тогда не удалять его.
Вы несомненно правы, но, если Вопрос был немного не в этом.
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|||||||||||
07.12.2019, 19:10 | 4 | ||||||||||
У вас тут память уже утекла.
Надо так:
1
|
-27 / 55 / 9
Регистрация: 29.09.2011
Сообщений: 609
|
||||||
07.12.2019, 19:15 [ТС] | 5 | |||||
А если мне будет удобнее иметь всё - таки объект, а не ссылку, надо ли его удалять?
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
||||||
07.12.2019, 19:51 | 6 | |||||
Именно в таком варианте у вас утечка памяти.
По-нормальному, если нужен объект - делайте так:
Добавлено через 3 минуты Т.е., я имею в виду, что что-то удалять уже поздно, вы уже потеряли объект. Ничего удалить в этом коде уже нельзя, а утечка памяти уже свершилась.
1
|
-27 / 55 / 9
Регистрация: 29.09.2011
Сообщений: 609
|
|||||||||||
09.12.2019, 21:48 [ТС] | 7 | ||||||||||
Спасибо. Ещё хотел бы одну вещь спросить, если есть цикл:
0
|
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
|
||||||
09.12.2019, 22:01 | 8 | |||||
надо конечно.
Добавлено через 59 секунд n не перезаписывает объект, а меняет ячейку на которую указывает, можно проверить
1
|
-27 / 55 / 9
Регистрация: 29.09.2011
Сообщений: 609
|
|
10.12.2019, 03:33 [ТС] | 9 |
а есть ли способ, чтобы не писать дополнительную строчку, а объект перезаписывался по ссылке?
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|||||||||||
10.12.2019, 09:25 | 10 | ||||||||||
_20_,
std::unique_ptr<Int> .Или так, если func возвращает Int *
0
|
10.12.2019, 09:25 | |
10.12.2019, 09:25 | |
Помогаю со студенческими работами здесь
10
Объект умирает когда не должен Удаляется объект когда не требуется и всё равно продолжает существовать Указатели и ссылки. Надо ли обнулять? когда и как это делать? Методы вызываются через указатель на объект класса; Как компилятор определяет, какой из методов надо вызвать? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |