- •Вопрос 1. Ссылки и ссылочные параметры.
- •Вопрос 2. Перегрузка функций.
- •Вопрос 3. Шаблоны функций.
- •Вопрос 4. Использование const с указателями.
- •Вопрос 5. Область действия класса. Управление доступом к членам класса. Отделение интерфейса от реализации.
- •Вопрос 6. Понятие конструктора .Использование констр-ра с аргументами по умолчанию. Конструктор по умолчанию.
- •Вопрос 7. Понятие деструктора. Когда вызывается конструктор и деструктор.
- •Вопрос 8. Константные объекты и функции-члены.
- •Вопрос 9. Дружественные функции и друж. Классы.
- •Вопрос 10. Указатель this.
- •Вопрос 11. Операции new и delete.
- •Вопрос 12. Статические члены класса.
- •Вопрос 13. Понятие перегрузки операций.
- •Вопрос 14. Функции-операции как члены класса и как друж-е функции
- •Вопрос 15. Перегрузка операций ввода/вывода в поток, бинар и унар операций.
- •Вопрос 17. Перегрузка операций индексации массива.
- •Вопрос 18. Понятие наследования. Механизм ограничения доступа при наследовании.
- •Вопрос 19. Приведение типа указателя базового класса к указателю производного класса и наоборот.
- •Вопрос 21. Конструкторы и деструкторы в производных классах.
- •Вопрос 22. Неявное преобразование объектов производных классов в объекты базового класса.
- •Вопрос 23. Иерархия классов. Уровни наследования.
- •Вопрос 24. Множественное наследование.
- •Вопрос 25. Неопределённость при множ-м наследовании. Включение «классы в классах».
- •Вопрос 26. Понятие виртуальной функции.
- •Вопрос 27. Понятие полиморфизма.
- •Вопрос 28. Абстрактные и конкретные базовые классы.
- •Вопрос 29. Статическое и динамическое связывание.
- •Вопрос 30. Виртуальные деструкторы.
- •Вопрос 31. Шаблоны классов.
- •Вопрос 32. Шаблоны классов и пользовательские типы
- •Вопрос 33. Шаблоны и наследование.
- •Вопрос 34. Классы и объекты потоков ввода/вывода. Иерархия потоковых классов.
- •Вопрос 35, 38. Предопределённые потоковые объекты. Состояние ошибок потока.
- •Вопрос 36. Манипуляторы потоков.
- •Вопрос 37. Неформатированный ввод/вывод с помощью read/ write
- •Вопрос 38. Состояние ошибок ввода/вывода
- •Вопрос 39. Понятие исключения. Когда должна использоваться обработка исключений.
- •Вопрос 40. Генерация исключений. Повторная генерация исключений.
- •Вопрос 41. Перехват исключений.
- •Вопрос 42. Спецификация исключений. Обработка неожиданных исключений.
- •Вопрос 43. «Раскручивание» стека. Иерархия исключений стандартной библиотеки.
- •Вопрос 44. Конструкторы, деструкторы и исключения. Исключения и наследование.
- •Вопрос 45. Обработка неуспешного выполнения new.
- •Вопрос 46. Класс auto_ptr и динамич выделение памяти.
- •Вопрос 47. Static_cast, reinterpret_cast
- •Вопрос 48. Инфо о типе времени выполнения. Оператор dynamic_cast
- •Вопрос 49. Ключевое слово explicit.
- •Вопрос 50. Ключевое слово mutable.
- •Вопрос 51. Указатели на члены класса.
- •Вопрос 52. Множественное наследование. Виртуальные базовые классы.
- •Вопрос 53. Классы-контейнеры и классы-итераторы.
- •Вопрос 54. Понятие ооп. Три условия ооп-программы. Парадигмы ооп.
- •Вопрос 55.Основные составляющие объектного подхода: абстрагирование, инкапсуляция, модульность.
- •Вопрос 56. Основные составляющие объектного подхода: иерархия, типизация, полиморфизм.
- •Вопрос 57. Природа объекта. Состояние, поведение, идентичность объекта.
- •Вопрос 58. Отношения между объектами. Связи. Агрегация.
- •Вопрос 59. Природа классов. Отношения между классами. Типы отношений.
Вопрос 38. Состояние ошибок ввода/вывода
Состояние потока может быть проверено с помощью битов класса ios — базового для классов istream, ostream и iostream, которые использe.ncz для ввода-вывода.
Ошибки потока:
Бит eofbit для входного потока автоматически устанавливается, когда встречается признак конца файла. Используется для определения в потоке признака конца файла. Вызов cin.eof() (возвращает true, если в cin встретился признак конца файла, и false в противном случае).
Бит failbit устанавливается для потока, если в потоке происходит ошибка форматирования, но символы не утеряны (обычно данные можно восстановить) - пользовательская ошибка.
Бит badbit устанавливается для потока при возникновении ошибки, к-ая приводит к потере данных (выполнена недопустимая опер-я).Данные обычно не восстанавливаются.
Бит goodbit устанавливается для потока, если ни один из битов eofbit, failbit и badbit не установлен (нет никаких ошибок). Возвращает true, если для данного потока все ф-ции bad, fail и eof должны вернуть false.
Функция-элемент rdstate возвращает состояние ошибки потока (читает состояние потока).
Функция-элемент clear обычно используется для восстановления потока в нормальное состояние (когда функция-элемент good возвращает истину), при котором можно продолжать операции ввода-вывода данного потока. По умолчанию параметр функции clear принимает значение ios::goodbit, так что оператор
cin.clear(); очистит входной поток cin и установит goodbit для этого потока. Оператор cin.clear(ios::failbit)устанавливает failbit.
Функция-элемент operator! возвращает истину в том случае, если установлен либо badbit, либо failbit, либо оба вместе. Функция-элемент operator void * возвращает false, если установлен либо badbit, либо failbit, либо оба вместе. Эти функции полезны при обработке файлов и проверке истинности или ложности условия в структуре выбора или в структуре повторения.
Hardfail – неисправимая ошибка
Функция eof() возвр int, если eofbit
Fail() возвр истину если Failbit Badbit Hardfail
Good() возвр истину если ошибок не было
Вопрос 39. Понятие исключения. Когда должна использоваться обработка исключений.
Обработка исключений позволяет отловить ошибку перед её возникновением. Обработка исключений используются в том случае, когда система может восстановиться из состояния ошибки. Т.е. обработчик исключений является процедурой восстановления. Исключения – возникновение непредвиденных ошибочных условий, например, деление на 0,... Обычно эти условия завершают выполнение программы системной ошибкой. Но возможно восстановить программу из этих условий и продолжать её выполнение.
Обработка исключений позволяет внести отслеживание потенциально возможных ошибок вне основного кода программы.
Наиболее типичные ошибки, обрабатываемые с помощью исключений:
неуспешное выполнение new
выход интерфейса за пределы массива
деление на 0
неправильные аргументы при вызове ф-ций
Обработка исключений должна использоваться для:
обработки только исключительных ситуаций.
обработки исключения, возникающие в тех компонентах программы, к-ые сами не имеют механизма обработки этих исключений.
обработки исключения, возникающие в таких компонентах программы, как ф-ции, библиотеки и классы, к-ые широко используются, и в к-ых не имеет смысла вводить собственную обработку исключений.
обработки больших проектов (ошибки, возникающие в различных местах проекта, обрабатываются одинаковым способом).