- •3. Указатели и ссылки. Указатель this.
- •4. Использование операторов new и delete.
- •5. Понятие классов и экземпляров классов.
- •6. Описание классов(class, struct, union).
- •7. Вложенные классы.
- •8. Определение объектов при помощи классов.
- •9. Конструкторы и деструкторы классов.
- •10. Атрибуты доступа к компонентам классов.
- •12. Вызов членов класса.
- •11. Объявление и определение методов класса.
- •13. Перегрузка конструкторов. Конструкторы копий.
- •14. Перегрузка операторов отношения.
- •15. Перегрузка логических операторов.
- •16. Перегрузка унарных операторов.
- •17. Перегрузка бинарных операторов.
- •18. Функция оператор как член класса и как friend функция.
- •19. Дружественные функции.
- •20. Доступ к компонентам классов в зависимости от атрибутов доступа.
- •21. Введение в наследование. Базовые классы.
- •22. Производные классы.
- •23. Ограничение доступа к элементам класса. Наследование свойств и модификаторы доступа. Одиночное наследование. Доступ к компонентам производных и базовых классов.
- •24. Конструкторы базовых и производных классов.
- •25. Виртуальные базовые классы. Чисто виртуальные функции.
- •26. Использование указателей на базовые классы и производные классы. Виртуальные методы.
- •27. Потоки ввода-вывода.
- •28. Иерархия классов ввода-вывода. Основные уровни иерархии. Классы потоков.
- •29. Стандартные классы, объекты и механизмы консольного ввода/вывода.
- •30. Стандартные классы, объекты и механизмы файлового ввода/вывода.
- •31. Понятие манипулятора. Реализация пользовательских манипуляторов.
- •32. Файлы последовательного доступа и произвольного доступа.
- •33. Понятие шаблона. Шаблоны функций и классов.
16. Перегрузка унарных операторов.
Унарный оператор, префиксный или постфиксный, можно определить либо в виде нестатической функции-члена без аргументов, либо в виде функции не члена, с одним аргументом. Для любого унарного оператора @ выражение @aa интерпретируется либо как aa.operator@(), либо как operator@(aa). Если определены обе функции, для определения того, какую из них использовать, то применяется механизм разрешения перегрузки. Для любого постфиксного оператора @ выражение @aa интерпретируется либо как aa.operator@(int) либо как operator@((aa,int)0
17. Перегрузка бинарных операторов.
Бинарный оператор можно определить либо в виде нестатичной функции-члена с одним аргументом, либо в виде функции-не члена с двумя аргументами. Для любого бинарного оператора @ выражение aa@bb интерпретируется либо как aa.operator@(bb) либо operator@(aa,bb). Если определены обе функции, для определения того, какую из них использовать, то применяется механизм разрешения перегрузки
18. Функция оператор как член класса и как friend функция.
Обычное объявление функции-члена гарантирует три логически разные вещи: функция имеет право доступа к закрытой части объявления класса, функция находится в области видимости класса, функция должна вызываться для объекта класса. Объявив функцию как static мы придаем ей только первые два свойства. Объявив функцию как friend мы наделяем ее только первым свойством.. Объявление функций-друзей можно поместить и в закрытой и в открытой части объявления класса. Функции-друзья явно указываются в объявлении класса , друзьями которого они являются.
19. Дружественные функции.
Обычное объявление функции-члена гарантирует три логически разные вещи: функция имеет право доступа к закрытой части объявления класса, функция находится в области видимости класса, функция должна вызываться для объекта класса. Объявив функцию как static мы придаем ей только первые два свойства. Объявив функцию как friend мы наделяем ее только первым свойством.. Объявление функций-друзей можно поместить и в закрытой и в открытой части объявления класса. Функции-друзья явно указываются в объявлении класса , друзьями которого они являются.
