Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Ввод-вывод с произвольным доступомСодержание книги
Поиск на нашем сайте
Под понятием произвольного доступа к файлу подразумевается ряд различных моментов: - можно произвольно обращаться к любой записи или любому байту в файле, в противоположность последовательному доступу, когда данные извлекаются или передаются в поток строго по очереди; - в открытом файле можно произвольно чередовать операции чтения и записи; - ввод-вывод с произвольным доступом является по преимуществу бесформатным. Для позиционирования потока используются функции seekg() и seekp(). Разница между ними в том, что первая перемещает позицию чтения в потоке, а вторая устанавливает новую позицию в выходном потоке. Если используется поток типа fstream, и он открыт в режиме чтения-записи, то все равно, какую функцию применять для позиционирования. Для определения текущей позиции tellg() и tellp(). Первая возвращает позицию чтения во входном потоке, а вторая – позицию в выходном потоке.
Контрольные вопросы: 1. Какие виды строк существуют в C++? 2. Как объявить C-строку? 3. Как осуществляется ввод-вывод строк? 4. Какие операции над строками вы знаете? 5. Перечислите операции над символами? 6. Перечислите стандартные потоки ввода-вывода? 7. Как создать файловый поток? Лекция 28 Классы Цели лекции: Изучение реализации классов на С++.
Объектно-ориентированный подход к программированию. ООП представляет собой новую идеологию разработки программы. Традиционное процедурное программирование предполагает, что в некотором месте программы будут описаны данные, а затем разрабатываются функции, последовательность выполнения которых, определяет суть и способ обработки данных. Разделение данных и функций – отличительная черта процедурного программирования. Суть объектно-ориентированного подхода состоит в том, что объединяются некоторые совокупности данных и функций, связанных с этими данными в субстанции, называемые классами.
Класс Класс - фундаментальное понятие С++. Класс предоставляет механизм для создания объектов. В классе отражены важнейшие концепции объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм. С точки зрения синтаксиса, класс в С++ - это структурированный тип, образованный на основе уже существующих типов. В этом смысле класс является расширением понятия структуры. В простейшем случае: Класс – это структурированный тип, состоящий из фиксированного набора возможно разнотипных данных и совокупности функций для обработки этих данных.
Определение класса ключ_класса имя_класса // заголовок класса { список компонентов класса}; // тело класса
ключ_класса имя_класса -– одно из слов class, struct, union; имя_класса идентификатор
Список компонентов (или членов класса - member) – это в простейшем случае определения и описания типизированных данных и принадлежащих классу функций. Определения разнотипных данных в списке отделяется ‘;’, если данные однотипные, их идентификаторы можно перечислить через запятую, аналогично как в структурах. Членами класса в общем случае могут быть данные, функции, классы, перечисления, битовые поля, дружественные функции, дружественные классы и имена типов. Функции – члены класса (member functions), называют методами класса или компонентными функциями. Данные класса (data members), называют компонентными данными или элементами данных класса. Класс – это тип, который служит для определения переменных класса - объектов (экземпляров) класса. Функции – это методы класса, определяющие операции над объектом. Данные – это поля объекта, образующие его структуру. Значения полей определяет состояние объекта. Примеры. struct date // дата
{ int month,day,year; // поля: месяц, день, год void set(int,int,int); // метод – установить дату void get(int*,int*,int*); // метод – получить дату void next(); // метод – установить следующую дату void print(); // метод – вывести дату }; struct complex // комплексное число
{double re,im; double real(){return(re);} double imag(){return(im);} void set(double x,double y){re = x; im = y;} void print(){cout<<“re = “<<re; cout<<“im = “<<im;} };
Для описания объекта класса (экземпляра класса) используется конструкция: имя_класса имя_объекта; date today,my_birthday; //объявление двух объектов date *point = &today; // указатель на объект типа date date clim[30]; // массив объектов date &name = my_birthday; // ссылка на объект
В определяемые объекты входят данные, соответствующие членам - данным класса. Функции - члены класса позволяют обрабатывать данные конкретных объектов класса. Обращаться к данным объекта и вызывать функции для объекта можно двумя способами.
Первый - с помощью “уточненных” имен: имя_объекта. имя_данного; имя_объекта. имя_функции(фактические параметры); Например: complex x1,x2; x1.re = 1.24; x1.im = 2.3; x2.set(5.1,1.7); x1.print(); И с использованием указателя на объект указатель_на_объект–>имя_компонентного данного указатель_на_объект–> имя_функции(фактические параметры); complex *point = &x1; // или point = new complex; point –>re = 1.24; point –>im = 2.3; point –>print(); Второй способ с помощью “квалифицированных” имен:
<имя объекта>. <имя класса>:: <имя компонента> <имя объекта>. <имя класса>:: <вызов компонентной функции > указатель_на_объект–><имя класса>:: <имя компонента> указатель_на_объект–><имя класса>:: <вызов функции >
|
||||
Последнее изменение этой страницы: 2021-02-07; просмотров: 163; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.14.140.108 (0.006 с.) |