Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Реализация класса

Читайте также:
  1. Celebrity Reflection – новейший лайнер класса Премиум
  2. IV. Реализация национальной морской политики
  3. АБСОЛЮТ (литера класса А)
  4. Анализ развития коллектива класса
  5. Воплощение и реализация
  6. Выбор и реализация решения
  7. Глава 12. Музыка для рабочего класса

Класс String

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

Некоторые языки программирования, подобные языку BASIC, определяют операторы для обработки строк. Например строковая переменная BASIC заканчивается символом $ и поддерживает присваивание оператором = и сравнение строк оператором <. Строковый тип является частью определения языка BASIC.

Для некоторых языков программирования предоставляют расширения, которые обеспечивают возможность улучшенной обработки строк. Большинство программистов С++ хотели бы получить такое расширение для более гибкого доступа к строкам.

Нижеприведенный класс String реализован в среде Borland C++ 5.02, определяет строковый тип и предоставляет мощный набор строковых методов объекты используют динамическую память для сохранения строк переменной длины и перегруженные операторы для создания строковых выражений. класс String предоставляет пользователю альтернативный строковый тип и тем не менее обеспечивает полное взаимодействие со стандартными строками С++(С++String).

 

 

Описание класса

Объекты класса string могут взаимодействовать со строками C++String (конкатенация). Класс имеет два перегруженных оператора присваивания, позволяющие пользователю присваивать строку C++String объекту String. Класс реализует различные способы конкатенации строк, включая оператор += для конкатенации строк в текущую строку. Ряд операторов сравнения используют упорядочение ASCII для сравнения двух строк. Класс String предоставляет несколько мощных и полезных строковых операций, включая поиск символов. Для каждого символа в строке имеется индексный доступ, как в простом массиве. Оператор ввода >> использует пробел для разделения строкового ввода. Метод ReadString считывает символы до ограниченного символа, который заменяется на NULL.

Реализация класса

Данными членами является переменная str, содержащая адрес строки с нулевым завершающим символом, и size, содержащая длину строки +1, где дополнительный байт обычно хранит символ NULL. Значения size, таким образом, являются количеством байт памяти используемым для строки. Если какая-либо операция изменяет размер строки, то память динамически освобождается и выделяется новая, нужного размера.

1). Конструкторы и деструкторы.

Конструктор создает объект типа String принимая в качестве параметра строку C++. Во время процесса инициализации он присваивает размер, выделяет динамическую память и копирует строку С++ в создаваемое динамически данное член str. По умолчанию присваивается NULL-строка. Конструктор копирования следует той же процедуре, но копирует строку из начального объекта string, а не из строки С++. Деструктор удаляет символьный массив, к-рый содержит эту строку.

2). Перегруженные операторы присваивания.

Оператор присваивания позволяет присваивать либо объект string либо строку С++ объекту string. Для того, чтобы присвоить новый string объект текущему объекту, сравнивается длина двух строк. Если они различны, то оператор удаляет динамическую память копирующего объекта и снова выделяет нужную память.

3). Операторы сравнения.

Класс string предоставляет полный набор операторов сравнения строк в соответствии с кодом ASCII. Эти операторы сравнивают два объекта string или объект string c C++string.

4). String – операторы.

Этот класс имеет набор функций, используемых для конкатенации. Конкатенация выполняется перегрузкой операторов + и +=. В первом случае возвращается новая строка. Во втором – происходит добавление к текущей строке.

5). String – функции.

Функция Substr возвращает подстроку из данной строки. Также имеются функции поиска символа в данной строке. Для реализации этих функций используется стандартные функции библиотеки string.h. имеются перегруженные операторы << и >> для обеспечения вывода строки на консоль и ввода символов в строку.

 

 


Дата добавления: 2015-10-29; просмотров: 104 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Синтетическое суждение, аналитическое суждение| Реализация класса: текст.

mybiblioteka.su - 2015-2024 год. (0.006 сек.)