Почему в C++ нужно использовать std::string вместо строк в стиле c?

«Всегда следует использоватьstd::stringвместо строк в стиле c (char *)» совет, который подходит почти для каждого исходного кода, размещенного здесь. Хотя совет, без сомнения, хорош, фактические вопросы, которые затрагиваются, не позволяют подробно остановиться на почему?аспекте совета. Этот вопрос должен служить заполнителем для того же самого.

Хороший ответ должен охватывать следующие аспекты (подробно):

  1. Почему следует использовать std::stringвместо строк в стиле c в C++?
  2. Каковы недостатки (если таковые имеются) практики, упомянутой в #1?
  3. Каковы сценарии, в которых совет, противоположный рекомендациям, упомянутым в #1, является хорошей практикой?

11
задан ybakos 5 April 2012 в 05:03
поделиться