- •Понятия объекта, класса объектов.
- •2. Основные понятия ооп: инкапсуляция, наследование и полиморфизм.
- •Модульное программирование.
- •4. Нисходящее программирование
- •5. Структурное програММирование
- •6. Прототипы функций.
- •7. Перегрузка функций
- •8. Значения формальных параметров по умолчанию.
- •9. ССылка и параметры-сСылки
- •10. Встраиваемые функцИи
- •11. ОперацИи new и delete
- •12. ФункцИи-члены и даННые-члены
- •13. Интерфейсы и реализация
- •14. Конструкторы и инициализация
- •15. Конструктор без параметров (по умолчанию)
- •16. Деструкторы и очистка
- •17. Конструктор копирования
- •18. Указатель this
- •19. Статические члены: функции и данные.
- •20. Указатели на члены.
- •21. Структуры и объединения
- •22. Константные члены-функции и константные объекты.
- •Void f();
- •Перегрузка бинарных и унарных операций.
- •Перегруженные операции индексирования, вызова функций, инкремента и декремента префиксных и постфиксных.
- •Перегрузка new, delete
- •Преобразование типов, определяемых пользователем с помощью конструкторов и операций преобразования.
- •Неявное преобразование типов
- •30. Наследование клаССов и производные клаССы.
- •31. Конструкторы, деструкторы и наследование.
- •Множественное наследование
- •Виртуальные базовые классы.
- •Virtual void draw();
- •Виртуальные функции.
- •35. Полиморфизм.
- •36. Абстрактные клаССы и чистые виртуальные функцИи.
- •37. Заголовочные файлы.
- •38. ПредопределЁнНые объекты и потоки.
- •39. Ошибки потоков.
- •41. Конструкторы файловых потоков.
- •42. Открытие файлов в разных режимах.
- •43. ВВод-вывод в файлы.
- •44. Шаблоны функций.
- •45. Параметры шаблонов.
- •46. Шаблоны клаССов.
42. Открытие файлов в разных режимах.
Для получения доступа к файлу нужно:
Создать поток соответствующего типа:
ifsteram - для ввода из файла ;
ofsteram - для вывода в файл;
fsteram - для обмена с файлом в двух направлениях.
Связать его с файлом данных и открыть (open) для работы в определенном режиме:
void ifstream::open(const char *имя_файла, openmode режим=ios::in);
void ofstream::open(const char *имя_файла, openmode режим=ios::out|ios::trunc);
void fstream::open(const char *имя_файла, openmode режим=ios::in|ios::out);
где имя_файла – имя файла, в которое может входить спецификатор пути;
режим – задает режим открытия файла, может принимать значения:
арр |
Открытие для записи в конец файла. |
ate |
При открытии позиционирует указатель на конец файла. |
binary |
Файл открывается в двоичном (не текстовом) режиме. |
in |
Файл открывается для ввода. |
out |
Файл открывается для вывода. |
trunc |
Если файл существует, его содержимое теряется. |
43. ВВод-вывод в файлы.
Для того, чтобы в C++ работать с файлами, необходимо подключить заголовочный файл fstream:
#include <fstream>
После этого можно объявлять объекты, привязанные к файлам: для чтения данных из файла используются объекты типа ifstream (аббревиатура от input file stream, для записи данных в файл используются объекты типа ofstream (output file stream). Например
ifstream in; // Поток in будем использовать для чтения ofstream out; // Поток out будем использовать для записи
Чтобы привязать тот или иной поток к файлу (открыть файл для чтения или для записи) используется метод open, которому необходимо передать параметр – текстовую строку, содержащую имя открываемого файла.
in.open("input.txt"); out.open("output.txt");
После открытия файлов и привязки их к файловым потокам, работать с файлами можно так же, как со стандартными потоками ввода-вывода cin и cout.
44. Шаблоны функций.
Цель введения шаблонов функций - автоматизация создания функций, которые могут обрабатывать разнотипные данные. Параметризовать в шаблоне функций можно тип возвращаемого функцией значения и типы любых параметров, количество и порядок размещения которых должны быть фиксированы.
Шаблон семейства функций состоит из двух частей - заголовка шаблона template <список_параметров_шаблона> и из определения функции, в котором тип возвращаемого значения и типы любых параметров обозначаются именами параметров шаблона, введенных в его заголовке. Те же имена параметров шаблона могут использоваться и в теле определения функции для обозначения типов локальных объектов.
Например, ниже определен шаблон для функции с именем mах, которая возвращает большее из двух значений:
template<class Т> Т mах(Т а, Т b)
{ if (а > b) return(а); else return(b); }