- •1. Комментарии
- •2. Константы
- •3. Встраиваемые функции Встраиваемые функции
- •4. Объявление структур, объединений и перечислений
- •5. Объявление переменных
- •5. Ссылки Что такое ссылка и что с ней можно делать
- •Ссылку можно рассматривать как еще одно имя объекта. В основном ссылки используются для задания параметров и возвращаемых функциями значений, а также для перегрузки операций.
- •6. Использование спецификатора void
- •7. Преобразование стандартных типов данных.
- •8. Новые операции new, delete, операция расширения области видимости
- •1. Операция new
- •2. Операция delete
- •3. Операция :: области видимости
- •9. Объявление функций. Аргументы по умолчанию
- •10. Перегрузка функций
- •Когда использовать перегрузку
- •Новые возможности по сравнению с Си
- •Объектно-ориентированные особенности языка
- •Две роли классов
- •Поля класса
- •Конструкторы класса
- •13. Перегрузка операций
- •Перегрузка операций
- •Перегрузка унарных операций
- •Перегрузка бинарных операций
- •Перегрузка операции присваивания
- •Перегрузка операции приведения типа
- •14. Дружественные функции
- •15. Сходства и различия классов, структур и объединений.
- •Отличия структур и объединений от классов
- •16. Классы и объекты. Определение класса и области видимости. Опережающее объявление класса
- •Две роли классов
- •Поля класса
- •17. Использование спецификатора класса памяти static. Статические компоненты класса
- •18. Константные объекты и константные методы
- •19. Неявный указатель this
- •20. Указатели на член класса
- •21. Локальные и вложенные классы
- •22. Специальный вид методов класса - конструкторы и деструкторы. Некоторые особенности конструкторов и деструкторов Конструкторы класса
- •23. Классы, содержащие объекты других классов
- •24. Создание объектов с различным временем жизни
- •25. Массивы объектов класса
- •26. Особенности копирования объектов Конструктор копирования
- •27. Заготовка класса без наследников
- •28. Пример вектора с неповерхностным копированием.
- •29. Излишнее копирование. Конструктор копии. Операции присваивания.
- •1. Излишнее копирование
- •2. Конструктор копирования
- •3. Операции присваивания
- •30. Преобразование типов. Стандартные преобразования. Явное преобразование типов
- •Преобразования указателей и ссылок
- •Явные преобразования типов
- •Неявное преобразование типа
- •31. Преобразования абстрактных типов данных (преобразование типов данных, созданных программистом)
- •32. Наследование классов
- •33. Доступ к наследуемым членам класса
- •34. Стандартные преобразования типов при наследовании
- •35. Инициализация объекта порожденного класса. Конструктор копии. Операция присваивания.
- •3. Операции присваивания
- •37. Виртуальные функции. Объявления виртуальных функций. Чисто виртуальные функции
- •Методы(функции)
- •38. Таблица виртуальных функций. Случаи, когда вызов виртуальной функции не будет виртуальным. Виртуальные деструкторы
- •39. Ввод-вывод файлов. Потоки ввода-вывода. Библиотека ввода-вывода (iostream). Группы классов библиотеки ввода вывода
- •40. Краткая характеристика иерархии классов производных от conbuf.
- •Класс conbuf (constrea.H)
- •Функции-элементы
- •41. Иерархия классов производных от ios
- •42. Состояния потока. Ошибки потоков. Состояние потока
- •С каждым потоком связан набор флагов, которые управляют форматированием потока. Они представляют собой битовые маски, которые определены в классе ios как данные перечисления. Манипуляторы
- •Шаблоны и наследование. Шаблоны и конфигурация компиляторов. Достоинства и недостатки шаблонов.
- •Совместное использование шаблонов и наследования
- •Достоинства и недостатки шаблонов
- •Исключения Применение try, catch, throw
- •47. Обработка исключительных ситуаций. Обработка завершения. Обработка структурных исключений, заявление исключения, фильтрующие выражение. Исключительные ситуации
- •Обработка исключительных ситуаций
- •Обработчик завершения
- •48. Стратегии взаимодействия объектов в программе. Программа как система взаимодействующих объектов. Система объектов, управляемых сообщениями
- •1. Программа, как система взаимодействия объектов.
- •49. Элементы объектно-ориентированного анализа и объектно-ориентированного проектирования. Диаграммы классов. Отношения классов: ассоциация, наследование, агрегация, использование.
- •51. Элементы объектно-ориентированного анализа и объектно-ориентированного проектирования. Диаграммы объектов, назначения, отношения между объектами. Диаграммы объектов (object diagrams)
40. Краткая характеристика иерархии классов производных от conbuf.
Потоковые классы С++
Библиотека потоковых классов в С++ состоит из нескольких классов, распределенным по двум отдельным иерархическим деревьям.
Файл заголовка |
Классы |
constrea.h |
conbuf, constream (только для приложений консольного режима). |
iostream.h |
ios, iostream, iostream_withassign, istream, istream_withassign, streambuf |
fstream.h |
filebuf, fstream, ostream, strstream, strstre- ambase, strstreambuf. |
Класс conbuf (constrea.H)
Специализирует streambuf для обработки консольного вывода.
Функции-элементы
Constructor |
Создает подключенный conbuf. |
clreol |
Очищает экран до конца текстового окна. |
clrscr |
Очищает заданный экран. |
delline |
Удаляет строку в окне. |
gotoxy |
Позиционирует курсор в заданной позиции окна. |
highvideo |
Выделяет символы повышенной яркостью. |
insline |
Вставляет пустую строку. |
lowvideo |
Выделяет символы пониженной яркостью. |
normvideo |
Задает нормальную интенсивность символов. |
overflow |
Выводит содержимое conbuf. |
setcursotype |
Задает вид курсора. |
textattr |
Задает атрибут текста. |
textbackground |
Задает текстовый фоновый курсор. |
textmode |
Переводит курсор в текстовый режим. |
wherex |
Получает горизонтальную позицию курсора. |
wherey |
Получает вертикальную позицию курсора. |
window |
Определяет активное окно. |
41. Иерархия классов производных от ios
На вершине иерархии находится класс ios, который, несмотря на то, что технически не является абстрактным, как правило, не используется для создания объектов ввода-вывода, а используется только в качестве базового класса для остальных потоков ввода-вывода. Действительно, класс ios содержит единст венный открытый конструктор потока, для использования которого требуется иметь предварительно созданный объект типа streambuf, обеспечивающий возможности буферизованного ввода или вывода. В большинстве случаев намного удобнее воспользоваться производными от ios классами, которые обеспечивают более простой интерфейс для создания потоковых объектов и предоставляют дополнительную функциональность, адаптированную к задачам ввода или вывода данных.
При работе с потоковой библиотекой ввода-вывода программист обычно достаточно активно использует следующие классы:
-
ios - базовый потоковый класс;
-
istream - класс входных потоков;
-
ostream - класс выходных потоков;
-
iostream - класс двунаправленных потоков ввода-вывода;
-
istrstream - класс входных строковых потоков;
-
ostrstream - класс выходных строковых потоков;
-
strstream - класс двунаправленных строковых потоков (ввода-вывода);
-
ifstream - класс входных файловых потоков;
-
ofstream - класс выходных файловых потоков;
-
fstream - класс двунаправленных файловых потоков (ввода-вывода);
-
constream - класс консольных выходных потоков.