- •1) Структурные типы данных и переменные этих типов .-
- •2) Передача структурных переменных функциям .-
- •3)Указатели на структурные переменные .
- •4) Массивы структурных переменных .
- •6)Поля битов. Средство typedef-
- •7) Понятие макроподстановки .
- •8) Включение файлов .
- •9)Условная компиляция.
- •12)Обработка двоичных файлов . Последовательный и произвольный доступ.
- •2)Произвольный доступ.
- •13)Аргументы используемые по умолчанию .-
- •14)Использование ссылок .
- •15)Встроенные функции.-
- •16)Операция разрешения видимости .(::)
- •17)Пространства имен.
- •18)Перегруженные функции.-
- •20)Определение классов.
- •21)Элементы класса.
- •22) Способы доступа к элементам класса .
- •23) Конструктор и деструктор.
- •24) Конструктор копии . Операция присваивания.-
- •25) Преобразование объектов класса в другие типы и их получение из других типов .
- •26)Перегрузка операций .
- •27)Дружественные функции.
- •28)Наследование классов .
- •29)Обработка исключительных ситуаций .
- •30)Визуалка.
12)Обработка двоичных файлов . Последовательный и произвольный доступ.
Двоичные файлы в формате *.dat. Хранение информации в двоичном файле позволяет существенно ускорить время считывания и записи. Существует 2 способа доступа к элементам двоичных файлов : последовательный и произвольный.
Последовательный : использование как правило для перебора всех данных хранящихся в файле . Заполнение пустых файлов так же возможно только в последовательном . Для открытия и закрытия двоичных файлов используют функции fopen и fclose . Но не всем режимам доступа следует добавлять букву b . Для записи в файл используется функция fwrite , чей прототип находится в файле <stdio.h> . Заголовок функции имеет вид : size_t fwrite(const void *ptr,size_t size. Size_t n,FILE *stream)
Параметры :
Void *ptr – указатель на исходные данные , записываемые в FILE
Size_t size – размер в байтах одного элемента данных .
Size_t n – число записываемых в файл элементов данных , размером size байт каждый.
File *stream – указатель на файловый поток открытых в двоичном режиме .
Void main ()
{FILE *giena;
Int mass[100];
Giena=fopen(“ttt.dat”,”wb”);
For (int i=0;i<100;i++)
Mass[i]=i*I;
Fwrite(mass,sizeof(int),100,giena);
Fclose(giena);}
2)Произвольный доступ.
Организация произвольного доступа к компонентам файла позволяет считывать значения из любой позиции файла , а так же записывать новую информацию в любое место в файле . Все компоненты файлов с произвольным доступом должны иметь одинаковую длину . Для изменения места файла , откуда будет производиться операция чтения или записи служит функция fseek. Ее прототип содержится в файле <stdio.h> , а заголовок имеет вид : int fseek(File *stream,long offset,intwhence)
Параметры :
File *stream – указатель на открытый файловый поток .
Long offset – число байтов , на которое нужно перемещения в обратную сторону offset должен быть отрицанием .
Int whence – указатель на положение точки отсчета от которого будет происходить перемещение файлового указателя .
Void main ()
{FILE *giena;
Int x;
Giena=fopen(“ttt.dat”,”rb”);
Fseek (giena,25*sizeof(int),SEEK_SET);
Fread (&x,sizeof(int),1,giena);
Printf (“Прочитано 25е число:%d\n”,x);
Fclose(giena);}
13)Аргументы используемые по умолчанию .-
В языке Си++ в прототипе функции существует возможность указать значение по умолчанию для некоторых параметров . Это позволит пропускать соответствующие аргументы при вызове функции , а на их место компилятор подставит указанные при описании значения . Параметр со значением по умолчанию должен стоять после всех остальных в списке , если при вызове функции параметр опускается , то нужно опустить и все последующие аргументы .
Void otchisl (char *gruppa,int n=26,int k=0);
Oychisl (“i-2-4”);
14)Использование ссылок .
В си++ используется видоизмененная форма указателя , называемая ссылкой . Для ссылки не требуется дополнительного пространства памяти , так как она является по сути другим именем переменной . Для описания ссылки используется :
Int &k;
Main ()
{int t;
Int &sh=t;}
Основное предназначение ссылок состоит в применении их для параметров функции и для типов возвращаемых значений файлов . В ссылке после инициализации не может быть присвоена другая переменная . При передаче параметров по ссылке вызов функции синтаксически никак не отличается от вызова передачи по значению .
#include <stdio.h>
Const int j=10;
Int mass[j];
Int &aaa (int i)
{return mass[i];}
Void Main ()
{for (int i=1;i<j;i++)
Aaa(i)=i*I;
For (i=1;i<j;i++)
Printf (“mass[%d]=%d\n”,I,aaa(i));
Ссылка может быть использована как тип возвращаемой функции , что позволит «присваивать функции значение».