Оператор new |
Здравствуйте, гость ( Вход | Регистрация )
Оператор new |
haiflive |
9.7.2011, 15:52
Сообщение
#1
|
Студент Группа: Участник Сообщений: 37 Регистрация: 8.7.2010 Пользователь №: 1868 Спасибо сказали: 1 раз(а) Репутация: 0 |
Прошу разъяснить мне давно волнующую меня тему..
Вопрос про оператор new, в чём разница между этими двумя функциями?. какой вариант предпочтительней и почему?. Функция 1:
Функция 2:
Я конечно понимаю, что выделение памяти произодёт в первом варианте в момент создания обекта, а во втором в момент обращения к функции.. А ни всё ли равно?. ну конечно если мы там внутри функции будем работать с "большим обектом", то его возможно потребуется удалить(и создать и удалить), НО рассматривается тот случай, когда создаётся объект в начале функции и удаляется только в конце.. Насчёт скорости ничего сказать не могу.. Насчёт ошибок, второй вариант предпочтительней так как по объёму написанного кода меньше, и не надо думать о том, что бы удалять обект. Почему я сплошь и рядом наблюдаю первый вариант?. это что такая привычка, или есть скрытый смысл?. |
|
|
Litkevich Yuriy |
10.7.2011, 16:20
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
haiflive, тут всё просто: Если объект должен жить за пределами функции в которой он создан - без new никуда.
И если объект сложный, обычно со скрытыми оператором присваивания и конструктором копирования - без new никуда. |
|
|
Текстовая версия | Сейчас: 16.5.2024, 18:34 |