LINUX.ORG.RU
Ответ на: комментарий от frozenix

Зачем мне весь этот геморрой, если я могу просто пользоваться указателями и писать стрелку вместо точки для доступа к полям и методам?

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Ты можешь сделать указатель на только что полученное значение на стеке?

O02eg ★★★★★
()
Ответ на: комментарий от PolarFox

Это не для того, о чем ты думаешь. Так или иначе, неважно что ты используешь ссылки или указатели(а какая разница, кстати?). В коде

myVar = myFunc();
myFunc() возвращает некий тип myType который содержит 24mb данных и на данном участке происходит полное копирование из временного обьекта в myVar. Это значит что в тут будет использовано 48mb памяти, а затем временный обьект уничтожается. && помогает избежать этого.

frozenix ★★★
()
Ответ на: комментарий от frozenix

Надо просто писать функции, которые возвращают не сами столь длинные объекты, а указатели на них.

(Вот именно из-за всех этих тонкостей С++ и не любят)

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

ок, ты хотел сказать умный указатель? если нет, то как определить нужно его освобождать или нет(если myFunc делал не ты)? Лично я за это не очень люблю С

frozenix ★★★
()
Ответ на: комментарий от frozenix

то как определить нужно его освобождать или нет(если myFunc делал не ты)?

Посмотреть описание API используемой библиотеки? А при совместной работе над кодом должны быть какие-либо соглашения о том, где и кому делать delete.

PolarFox ★★★★★
()
Ответ на: комментарий от frozenix

А перекочевавшие из более высокоуровневых языков фичи в плюсах явно не смотрятся. Если я буду хотеть, чтобы среда сама за мной подчищала память, я на жабке буду писать.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

А при совместной работе над кодом должны быть какие-либо соглашения о том, где и кому делать delete.

Смарт-поинтеры.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.