Я читаю о классе строк STL. Он упоминается ниже:Оператор преобразования для класса строк
Строка строки STL выбирает не определять операторы преобразования, а использует методы c_str() и data() для прямого доступа к памяти. STL намеренно не включает неявные операторы преобразования, чтобы предотвратить неправильное использование необработанных указателей строк.
Мой вопрос
- c_str() возвращает константный символ * указатель и по-прежнему пользователь может изменить значение строки. Я прав?
- Что означает автор, чтобы «предотвратить неправильное использование необработанных указателей строк»? Пожалуйста, объясните, желательно с примером.
Спасибо!
1. Как вы думаете, что означает 'const'? –
1. Вы можете изменить строку, но ** не ** через указатель, возвращаемый 'c_str()' или 'data()'. 2. Изменение содержимого базовых строковых данных без сохранения инвариантов. Например, путем изменения с помощью указателя, возвращаемого 'c_str()' или 'data()'. – juanchopanza
... http://c2.com/cgi/wiki?StlIsNotTheCppStandardLibrary – StoryTeller