Вернуться на Страничку новостей.

08.02.2009

Брюс Эккель

"Философия С++"
Объекты С++ string обладают огромными преимуществами перед своими прототипами языка С. Прежде всего это связано с тем, что класс string позволяет работать со строками без применения указателей. При этом исчезает целый класс программных ошибок, обусловленных применением неинициализированных или неправильно инициализированных указателей.

Строки С++ динамически расширяют свой внутренний блок данных в соответствии с увеличением объема строковых данных, причем это не требует участия пользователя. Когда данные строки выходят за пределы изначально выделенной памяти, строковый объект вызывает функции для выделения и освобождения памяти в куче (динамической памяти). Проверенная схема управления памятью предотвращает утечки и обычно работает гораздо эффективнее "самодельных" решений.

Функции класса string представляют достаточно полный инструментарий для создания строк, их модификации и поиска. Сравнения в стандартном классе string всегда выполняются с учетом рагистра символов, но это ограничение можно обойти разными способами - копированием строковых данных в строки С, завершенные нуль-символами, временным преобразованием данных строковых объектов к общему регистру или созданием класса с переопределением стандартных характеристик символов, используемых при специализации шаблона basic_string.

Hosted by uCoz