![](/user_photo/2706_HbeT2.jpg)
- •Основы ооп. Понятие инкапсуляции, наследования и полиморфизма.
- •Класс в ооп и его основные компоненты.
- •Перегрузка функций.
- •Уровни доступа к элементам класса.
- •Область видимости объектов, скрытие имен.
- •Динамическая память, функции работы с памятью.
- •Динамическая память, операции работы с памятью.
- •Передача аргументов в функцию по умолчанию.
- •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. Форма конструктора со списком инициализации.
35. Алгоритмы.
Алгоритмы обрабатывают данные, содержащиеся в контейнерах. Несмотря на то, что каждый контейнер обеспечивает поддержку собственных базовых операций, стандартные алгоритмы позволяют выполнять более расширенные или более сложные действия. Они также позволяют работать с двумя различными типами контейнеров одновременно. Для получения доступа к алгоритмам библиотеки STL необходимо включить в программу заголовок <algorithm>.
В библиотеке STL определено множество алгоритмов. Все эти алгоритмы представляют собой шаблонные функции. Это означает, что их можно использовать к контейнеру любого типа.
36. Потоковые классы.
К классам потоков относятся следующие:
Класс basic_streambuf управляет буфером потока, обеспечивая базовые операции заполнения, опорожнения, сброса и прочих манипуляций с буфером.
Класс basic_ios является базовым классом потоков ввода-вывода.
Классы basic_ istream и basic_ostream — производные от ios и обеспечивают работу потоков соответственно ввода и вывода.
Класс basic_ iоstream является производным от двух предыдущих и предусматривает функции как для ввода, так и для вывода.
Классы basic_ ifstream, basic_ofstream и basic_fstream предназначены для управления файловым вводом-выводом.
Для работы с потоками требуется включить в программу заголовочный файл iostream.h. Кроме того, может потребоваться подключить файлы fstream.h (файловый ввод-вывод), iomanip.h (параметризованные манипуляторы).
37. Управление выводом. Манипуляторы и флажки.
Манипуляторы потоков являются по существу функциями, которые можно вызывать непосредственно в цепочке операций извлечения или передачи в поток. Различают простые и параметризованные манипуляторы. У простых манипуляторов аргументы отсутствуют. Параметризованные манипуляторы имеют аргумент. Можно создавать собственные манипуляторы.
Простые и параметризованные манипуляторы
Манипулятор |
Описание |
dec |
Задает десятичную базу преобразования. |
end1 |
Передает в поток символ новой строки и сбрасывает поток. |
ends |
Передает в поток символ завершающего строку нуля. |
flush |
Сбрасывает выходной поток. |
hex |
Задает шестнадцатеричную базу преобразования. |
lock(ios Sir) |
Блокирует дескриптор файла потока ir. |
oct |
Задает восьмеричную базу преобразования. |
resetiosflags(int f) |
Сбрасывает флаги, биты которых установлены в f. |
setbase(int b) |
Устанавливает базу преобразования (0, 8, 10 или 16). |
setiosflags(int f) |
Устанавливает флаги, биты которых установлены в f. |
setfill(int c) |
Задает символ заполнения (аналогичен функции fiilO). |
setprecision(long p) |
Задает точность (аналогичен функции precision ()). |
setw(iong w) |
Задает ширину поля (аналогичен функции width ()). |
lunlock(ios &ir) |
Разблокирует дескриптор файла для потока ir. |
ws |
Исключает начальные пробельные символы. |
Флажки управления форматированием являются битовыми полями, хранящимися в переменной типа fmtflags (псевдоним int). Для их чтения и/или модификации могут применяться следующие функции-элементы класса ios:
int flags (), int flags (int). Без параметра возвращает текущее состояние флагов. При указанном параметре устанавливает новые значения флагов и возвращает их прежнее состояние.
int setf(int), long setf(int, int). Первая форма устанавливает флаги, биты которых установлены в параметре. Вторая форма модифицирует флаги, биты которых установлены во втором параметре. Значения этих флагов задаются первым параметром. Возвращает прежнее состояние всех флагов.
void unsetf(int). Сбрасывает флаги, биты которых установлены в параметре.
Форматирующие флаги класса ios
Флаг |
Описание |
internal |
Если установлен, при выводе чисел знак выводится на левом краю поля вывода, а само число выравнивается по правому краю поля. Промежуток заполняется текущим символом заполнения. |
dec |
Устанавливает десятичное представление чисел. Принимается по умолчанию. |
oct |
Устанавливает восьмеричное представление чисел. |
hex |
Устанавливает шестнадцатеричное представление чисел. |
showbase |
Если установлен, то при восьмеричном и шестнадцатеричном представлении чисел выводит индикатор основания (0 для восьмеричных и Ох для шестнадцатеричных чисел). |
showpoint |
Если установлен, для вещественных чисел всегда выводится десятичная точка. |
uppercase |
Если установлен, шестнадцатеричные цифры от А до F, а также символ экспоненты Е выводятся в верхнем регистре. |
boolalpfa |
Если установлен, булевы значения выводятся как слова “true/false”. В противном случае они представляются соответственно единицей и нулем. |
showpos |
Выводит + для положительных чисел. |
scientific |
Если установлен, вещественные числа выводятся в научной (экспоненциальной) нотации. |
fixed |
Если установлен, вещественные числа выводятся в десятичном формате (с фиксированной точкой). |
unitbuf |
Если установлен, поток сбрасывается после каждой операции передачи. |
Имена перечисленных выше флагов и других констант принадлежат к области действия класса ios. Вне этого класса нужно либо воспользоваться разрешением области действия (ios : : scientific), либо обращаться к ним, как к элементам существующего объекта (cout. scientific). Мы поедпочитаем первый способ.