- •Основы ооп. Понятие инкапсуляции, наследования и полиморфизма.
- •Класс в ооп и его основные компоненты.
- •Перегрузка функций.
- •Уровни доступа к элементам класса.
- •Область видимости объектов, скрытие имен.
- •Динамическая память, функции работы с памятью.
- •Динамическая память, операции работы с памятью.
- •Передача аргументов в функцию по умолчанию.
- •11. Характеристика элементов-данных класса.
- •13. Указатель «this». Пример явного использования.
- •Void load_i (int val) {
- •14. Функции-друзья класса.
- •15. Функции-конструкторы. Явный и косвенный вызов конструктора.
- •16. Функции-деструкторы.
- •17. Методы класса с атрибутом «const».
- •18. Статические методы и данные. Атрибут «static»
- •23. Виртуальный базовый класс.
- •25. Виртуальные функции. Переопределение виртуальных функций.
- •26. Понятие абстрактного класса.
- •27. Перегрузка операций.
- •28. Особенности перегрузки операций при помощи методов класса и функций-друзей.
- •29. Перегрузка методами класса.
- •30. Использование ссылок при перегрузке унарных операций.
- •31. Стандартная библиотека. Общая характеристика.
- •32. Строковый класс стандартной библиотеки.
- •2. String (const char *str);
- •3. String (const string &str);
- •Insert() - вставка символов одной строки в другую
- •33. Контейнерные классы.
- •Vector - динамический массив
- •34. Итераторы.
- •Категории итераторов
- •Операции доступные итераторам
- •35. Алгоритмы.
- •36. Потоковые классы.
- •37. Управление выводом. Манипуляторы и флажки.
- •38. Файловые потоки.
- •39. Шаблоны функций
- •40. Шаблоны классов.
- •41. Обработка исключений. Общая характеристика.
- •42. Вложенные классы.
- •43. Классы и указатели при наследовании.
- •44. Многократная перегрузка операций.
- •46. Указатель типа «void».
- •47. Адрес в качестве возвращаемого значения функции.
- •48. Операция «typeid».
- •49. Виды обработчиков исключительных операций.
- •50. Отличие вызова функций от вызова обработчика исключительной ситуации.
- •51. Создание собственного завершающего кода при перехвате исключительной ситуации.
- •52. Форма конструктора со списком инициализации.
38. Файловые потоки.
Файловые потоки библиотеки ввода-вывода реализуют объектно-ориентированную методику работы с дисковыми файлами. Имеется три класса таких потоков:
ifstream специализирован для ввода из дисковых файлов.
of stream специализирован для записи дисковых файлов.
fstream управляет как вводом, так и записью на диск.
Эти классы выводятся соответственно из istream, ostream и iostream. Таким образом, они наследуют все их функциональные возможности (перегруженные операции << и>>” для встроенных типов, флаги форматирования и состояния, манипуляторы и т. д.).
Чтобы работать с файловым потоком, нужен, во-первых, объект потока, а во-вторых, открытый файл, связанный с этим объектом.
Конструирование объекта потока
Каждый из трех классов файловых потоков имеет четыре конструктора.
Конструктор, создающий объект без открытия файла:
ifstream () ;
of stream();
fstream () ;
Конструктор, создающий объект, открывающий указанный файл и закрепляющий этот файл за потоком. Аргументами являются имя файла, режим открытия и режим защиты (в Windows не используется):
if stream(const char *name,
int mode = ios::in, long prot = 0666);
ofstream(const char *name,
int mode = ios::out, long prot = 0666);
fstream (const char *name, int mode, long prot = 0666);
Конструктор, создающий объект и связывающий с ним уже открытый файл. В качестве аргумента передается дескриптор файла:
ifstreamfint file);
ofstream(int file);
fstream (int file) ;
Конструктор, создающий объект и связывающий с ним уже открытый файл; объект ассоциируется указанным буфером:
ifstream(int file, char *buf, int len)
of stream(int file, char *buf, int len)
fstream (int file, char *buf, int len)
39. Шаблоны функций
Шаблоны функций позволяют работать с типами данных, задаваемых как параметр. Таким образом , одну и ту же функцию можно использовать для разных типов данных.
Формат определения шаблонной функции начинается ключевым словом template
template <class Ttype> тип имя_функции(список_параметров)
{
// тело функции
}
Шаблонная функция может иметь несколько обобщенных типов данных.
Шаблон функции тоже можно перегружать.
В шаблонных функциях можно использовать стандартные параметры.
Шаблонная функция должна всегда выполнять одно и то же действие, Различие толь в типе данных!
40. Шаблоны классов.
В шаблоне классов тип обрабатываемых в нем данных задается как параметр.
template <class Ttype> class имя_класса
{
// . . .
}
Конкретный экземпляр шаблонного класса создается след. образом:
Имя_класса <тип> имя_объектаж
Шаблонный класс может иметь несколько обобщенных типов данных.
В шаблонных классам можно использовать аргументы, не являющиеся типами.
В шаблонных классам можно использовать аргументы по умолчанию.
template <class X=int> class myclass{ }? Т.е. если теперь при создании объекта класса myclass не будет указан тип, по умолчанию он будет – int
41. Обработка исключений. Общая характеристика.
Обработка исключений - это системные средства, с помощью которых программа может справиться с ошибками времени выполнения. Управление С++ механизмом исключений основывается на трех ключевых словах: try, catch и throw.
Суть обработки исключений в следующем: контролируемые программные инструкции помещаются в try-блок. Если исключение(ошибка) произошла, она дает о себе знать выбросом определенной информации с помощью ключевого слова throw. Это выбрашенное исключение может быть перехвачено программным путем с помощью catch-блока и обработано соответствующим образом.