Вход на сайт
C++ Frage zur Speicherverwaltung
634 просмотров
Перейти к просмотру всей ветки
femidav завсегдатай
в ответ evgher 18.12.08 18:38
В ответ на:
Думаю что знаем. Аллокация произошла с new std::string значит delete[].
Конечно плохо то что потом указатель указывает на поле которого позже может и не быть.
Думаю что знаем. Аллокация произошла с new std::string значит delete[].
Конечно плохо то что потом указатель указывает на поле которого позже может и не быть.
Да, разумеется сейчас, пока пишем, мы это знаем. А через несколько месяцев мы будем это знать? А другой программист использующий данный интерфейс будет это знать?
В ответ на:
Это плохо. Ещё того хуже, что эти внутренности возвращаются в виду указателя. Банальный вопрос - а почему это плохо? В чем вообще разница между указателем и референц?
Это плохо. Ещё того хуже, что эти внутренности возвращаются в виду указателя. Банальный вопрос - а почему это плохо? В чем вообще разница между указателем и референц?
Указатели плохи, потому что оставляют неясным вопрос владения, если мы передаём ссылку, то всем ясно - этот объект нам не принадлежит. В случае raw pointer никакой ясности нет. Если действительно нужен указатель, то следует использовать умные указатели - shared_ptr и т.п.
Что же касается открытия внутренностей поля - читать теорию OOP (инкапсуляция).
Перейти на |