Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Летняя практика КОНСПЕКТ ПО ТМиЯП.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
8.35 Mб
Скачать

Лекция №7 «Классы»

Класс это сложная структура данных, которая включает в себя свойства и методы.

Свойства класса – это любые типы данных.

Методы – это функции выполняющие обработку данных.

Аналогичным образом функции можно включать в структуры (struct).

Основным отличием класса является то, что в классах употребляются ключевые слова ограничивающие доступ к элементам класса (ключевые слова public, private, protected).

  1. Public –определяет свойства элементов доступные пользователям класса. Пользователь класса это программный код, создающий и использующий объекты данного класса.

Всякий объект является экземпляром данных созданных по описанию класса. Описание играет роль матрицы.

  1. Private – определяет закрытые свойства и методы. Эти свойства и методы недоступны внешним пользователям, однако доступны любым методам класса.

  2. Protected – определяет свойства и методы закрытые от внешних пользователей, но доступные в классах, связанных с данным классом отношением наследования.

Любое описание класса состоит из 2 частей: интерфейса и реализации.

Интерфейс – это перечисление типов и имен свойств, а также сигнатур методов.

Реализация класса – это программный код методов класса.

:: - оператор прямой видимости.

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

Класс string

String – является одним из типов, которые объявлены в библиотеке #include <string>

String – класс для обработки символьных строк. В отличие от массивов языка Си , в классе присутствует набор методов облегчающих выполнение операций над массивами и делающих эту обработку более надежной.

Например:

- строка способна динамически изменять свою длину.

- строки допускают объединение с использованием оператора суммирования (+).

- в классе имеются методы для поиска символов и фрагментов строк в различных вариациях условий.

- имеются методы для выделения из строк фрагментов нужной длины и с требуемой позицией.

Лекция №8 «Ввод-вывод информации в файлы».

Файл – структура данных для хранения информации на устройствах долговременного хранения.

Все функции по обслуживанию файлов возлагаются на ОС. Чтобы выполнить чтение или запись данных из файла, прикладная программа должна реализовать следующие действия:

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

  2. Если файл открыт, то через функции чтения и записи осуществляется обмен информацией с файлом. При записи информации в общем случае не гарантируется ее мгновенная фиксация в файле на внешнем устройстве. Обычно записываемые данные сохраняются в промежуточных системных буферах. Для явной записи необходимо вызвать соответствующую функцию очистки буфера.

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

Обмен данными с файлом функциями из библиотек С++ осуществляется в основном на уровне байт или

простейших структур С++. Более сложные объекты для сохранения в файл должны декомпозироваться на простые элементы.

Запись в файл.

Чтение из файла.

При чтении из файла с помощью оператора «>>» выполняется контроль типа. Это означает, что считываемые символы преобразуются к значению соответствующему типу переменной. Например, если считывается строка в нее помещаются последовательно символы до тех пор, пока не будет встречен символ разделитель. По умолчанию таковым является проблем, запятая, точка с запятой, точка.

Строки с разделителем.

Вывод в файл структурной переменной

Для того, чтобы сохранять в файлах объекты произвольных классов необходимо организовать запись тех свойств, которые относятся к простым типам. Например, чтобы сохранить в файле объект класса string следует с помощью метода .c_str() получить указатель на строку в стиле С++ т.е. символьный массив с нулевым ограничителем. Строка такого типа сохраняется в файле оператором << . Аналогично любая структурная переменная записывается и считывается по отдельным полям.

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