Содержание
- 2. Введение Определения понятия объект с разных точек зрения: 1) с точки зрения человеческого восприятия, объект –
- 3. Объявление классов и создание объектов
- 4. Объявление классов и создание объектов
- 5. Поведение объекта Операция (действие, сообщение, метод, функция) – это определенное воздействие одного объекта на другой с
- 6. Поведение объекта
- 7. Поведение объекта
- 8. Поведение объекта
- 9. Индивидуальность объекта Индивидуальность – это совокупность тех свойств объекта, которые отличают его от всех других объектов.
- 10. Индивидуальность объекта Копирующий конструктор – это конструктор, в списке формальных параметров которого стоит ссылка на объект
- 11. Индивидуальность объекта
- 12. Инкапсуляция Инкапсуляция – это объединение данных и поведения в один объект и сокрытие реализации. Модификаторы доступа:
- 13. Обработка исключительных ситуаций Исключительная ситуация – ошибка времени выполнения, которая приводит к невозможности (бессмысленности) продолжения выполнения
- 14. Обработка исключительных ситуаций Далее рассматриваем механизм программных исключительных ситуаций в C++ Оператор throw enum { ENUM_INVALID_INDEX
- 15. Обработка исключительных ситуаций Блок try и блок catch try { throw -1; } catch(int k) //
- 16. Обработка исключительных ситуаций double sqrte (double d) { if(d { throw d; } return sqrt(d); }
- 17. Обработка исключительных ситуаций double sqrte (double d) { if(d { throw d; } return sqrt(d); }
- 18. Обработка исключительных ситуаций try { throw ‘a’; } catch(int k){ cout } catch(double d){ cout }
- 19. Обработка исключительных ситуаций class ArrayException { private: std::string m_strError; ArrayException() {}; // not meant to be
- 20. Обработка исключительных ситуаций class Base { public: Base() {} }; class Derived: public Base { public:
- 21. Обработка исключительных ситуаций Стандартные исключения return m_nData[nIndex]; } Стандартная библиотека C++ предлагает базовый класс exception для
- 22. Отношение наполнения Отношение наполнения – это отношение между классами, при котором классы формируются из общей структуры,
- 23. Отношение наполнения Необходимость:
- 24. Отношение наполнения Решение:
- 25. Отношение наполнения Специализация методов шаблонного класса
- 26. Отношение наполнения Эквивалентность типов: два конкретных класса, полученных из обобщённого класса, являются эквивалентными, если совпадают шаблоны
- 27. Зависимость template class Array { public: T operator[](int i) {…} } void main() { Array intArray;
- 28. Перегрузка операторов Ограничения: невозможно изменить старшинство операторов; запрещено изменять назначение операторов для встроенных типов; запрещено конструировать
- 29. Перегрузка операторов
- 30. Перегрузка операторов
- 31. Перегрузка операторов
- 32. Перегрузка операторов Операторы-методы класса
- 33. Отношение наследования между классами Наследование – это такое отношение между классами, при котором один класс повторяет
- 34. Отношение наследования между классами При наследовании в подклассах можно использовать: добавление новых полей добавление новых методов
- 35. Отношение наследования между классами Механизм доступа к полям и методам обеспечивается тем, что объявление метода содержит
- 36. Переопределение методов Переопределение – объявление в подклассе метода с таким же именем и списком параметров, как
- 37. Замещение методов Позднее связывание объектов и методов. Полиморфизм
- 38. Замещение методов Позднее связывание объектов и методов VMT = Virtual Method Table = таблица виртуальных методов
- 39. Таблица виртуальных методов Конструктор заносит в поле v_ptr адрес VMT Вызов виртуального метода преобразуется в косвенный
- 40. Уточнение методов
- 41. Конструкторы и деструкторы Проблема при использовании невиртуального деструктора Надо так: Перегрузка Конструкторов!!!
- 42. Отношение наполнения Использование обобщённого класса в обычном (конкретном) классе
- 43. Отношение наполнения Обобщенный класс является подклассом конкретного суперкласса Конкретный класс является подклассом обобщенного класса
- 44. Отношение наполнения Обобщенный класс является подклассом обобщенного класса
- 45. Перегрузка операторов
- 46. Множественное наследование Множественное наследование: более одного родительского класса Проблемы: Неопределенность наименования элементов класса Повторное наследование структуры
- 47. Неопределенность наименования В разных суперклассах одного подкласса используются одинаковые имена элементов (полей или методов)
- 48. Неопределенность наименования
- 49. Повторное наследование Amplifier::data Chip::data Element::data Element::data
- 50. Повторное наследование Структура объектов при повторном наследовании
- 51. Повторное наследование Виртуальные базовые классы
- 52. Повторное наследование Повторное наследование без виртуального наследования. Последовательность выполнения конструкторов
- 53. Повторное наследование Последовательность выполнения конструкторов при виртуальном наследовании
- 54. Ассоциация между классами Отношение ассоциации определяет способы взаимодействия объектов ассоциированных классов
- 55. Ассоциация (агрегация) Агрегация по значению Агрегация по ссылке
- 56. Ассоциация Ситуации, в которых возникает отношение ассоциации классов: 1) методу данного класса передается объект используемого класса,
- 57. Ассоциация Пример
- 58. Зависимость Дружественное отношение
- 59. Потоковый ввод/вывод 1) iostream – основная библиотека со стандартными потоками ввода/вывода. 2) iomanip – библиотека с
- 60. Потоковый ввод/вывод Потоковый вывод
- 61. Потоковый ввод/вывод Потоковый ввод
- 62. Потоковый ввод/вывод Перегрузка операторов ввода/вывода (только утилиты)
- 63. Потоковый ввод/вывод Файлы последовательного доступа: вывод Некоторые режимы открытия файлов: ios::out – файл для вывода; ios::in
- 64. Потоковый ввод/вывод Файлы последовательного доступа: ввод
- 65. Константные методы, константные поля и объекты-константы Константные методы Константными объявляются методы, которые не должны изменять поля
- 66. Константные методы, константные поля и объекты-константы Константные поля Если поле объекта не должно изменяться на всём
- 67. Статические методы, статические поля
- 68. Особенности использования конструктора копирования Конструктор копирования по умолчанию вызывает конструктор копирования родительского класса. Если для дочернего
- 69. Особенности использования конструктора копирования
- 71. Скачать презентацию