эти причины — плохая имплементация new delete. Зачем учить новичков плохому?
Удали этот бред)
Эмм, нет, эти причины не были плохой имплементацией new/delete
Мне просто интересно, ты вот сама понимаешь что сказала? И что же плохо в этой их имплементации?
именно в них. Как будто программы с new delete не текли массово как старое корыто...
Вопрос не в плохой имплементации
new delete, это следующее поколение malloc free. Далее люди обернули это в смарт поинтеры, чтобы получить полную выгоду от raii
Видимо, утечки памяти это признак удачного решения?
Нет, это признак плохих программистов, которые не подумали о том, как этих утечек не допустить
Но мне больше интересно... Расскажи-ка, как должно выглядеть хорошее решение
Она сейчас скажет, что смарт поинтеры должны были быть на уровне языка
Можно сделать раковину без слива воды сверху и рассказыать что раковина офигенная и это пользователи уроды, что допускают переполнение. А можно признать что это ты дурак, что такое сделал. new delete - это просто плохой дизайн.
Я всё ещё жду "хорошего" решения. Удиви меня
Сравнение не может являться доказательством, сравнение - это только сравнение, не больше
Это о том, что если твой аргумент — пользователи слишком тупы, чтоб этим пользоваться, то дело не в пользователях.
shared_ptr так и устроен. Давай ты подумаешь чем отличается оьычный указатель от shared
тем, что он не удаляется при отсутствии на него активных ссылок
Нет, тем, что это дополнительный оверхед, представляешь себе? Особенно в многопоточной среде
Слышала такую фразу: не плати за то, что не используешь?
Нет, это тоже не так.
Так эта, чего тогда новичков сразу не учить многопоточным приложениям? пишем multithreaded "Hello World" для высоконагруженных систем первой программой.
Это просто пул же
Хватить утрировать. Я сказал не только о многопоточности
Так может попробуешь какой нибудь язык со сборщиком мусора? Никто же не заставляет на плюсах писать.
ты приводишь необходимость учить новичков new delete а не smart pointers тем, что они в многопотоке используются.
Причем глобальный правда стек пулов
В С++ можно было хоть сразу gc вшить. Вопрос в том, что всё это дополнительная плата... Это не путь С++. За то, что делаешь всё руками, платишь возможностью отбить себе эти руки, однако это гораздо быстрее
Блин, Настя. Учи язык. Не пиши херню. Не думай пока о глобальных проблемах, ты в них не разбираешся
Слушай, уж прости, ты читать не умеешь? Я сказал не только о многопотоке
вопрос о том, что new delete это не то, что надо учить новчкам, а не о сборщике мусора
Ничего страшного не произойдет с тобой, если ты сначала узнаешь, что такое new delete
Страшное произойдет если я узнаю только о new delete, что и происходит у Праты
Это то, что надо учить новичкам. Причем ты даже не понимаешь в какой степени надо. Просто если ты придёшь ко мне на работу и скажешь, что ты не знаешь что такое new и delete, я тебя не приму. Вот и всё
New delete это часть инструментов которые дает язык. С их существования начинаются умные указатели. С ними написано куча, кууууча кода. Плюс я лично не вижу проблемы в их изучении. Нормальные инструменты. Говнокод можно с чем угодно написать. Если ты будешь шаред поинтеры везде пихать это тоже говонокод т.к. они сравнительно тяжелые. Особенно их копирование.
Просто больше вероятно ничего нет
Течет и течет, в чем проблема-то? У тебя и Java потечет, если взять substring парой индексов строки вместо копирования
Ну обджектив си не потечет
new и delete – это то, с чем новичок столкнется практически наверняка, выйдя на свою первую работу. Прямо или косвенно. Рано или поздно. Не учить – прямой путь к отстрелу ног И ещё, я не знаком с Пратой, но практически уверен, что если в простые примеры кода пихать умные указатели, то примеры станут резко сложнее и придётся сосредотачиваться не только на том, что показывается в конкретном примере, но и на самих умных указателях. Это дополнительная нагрузка. Да, сырые указатели сложнее использовать правильно в реальном коде, но они концептуально проще в понимании и читатель сможет сосредоточиться на проблеме, описываемой в примере, а не особенностях владения, поэтому в качестве примеров они проще
Может тогда и C++ не надо учить? Есть много классных языков где вообще нет new и delete...
Не согласен, что сырые указтели сложнее использовать. Просто нужно понимание, что ты делаешь (random driven design с ними не работает) и дисциплина.
Ну, в большом проекте я предпочту всё же, умные указатели, а не ручной контроль времени жизни. Может быть, я неверно выразил то, что имел ввиду
Опять началось... я уже знаю один классный язык, в котором нет new и delete.
Ну :))) Значит все хорошо. Ты - не новичок. Учить new и delete полезно.
Обсуждают сегодня