Содержание
- 2. Друзья классов Дружественная функция – это функция, которая, не являясь компонентом класса, имеет доступ к его
- 3. Пример использования friend - функции
- 4. Пример использования friend - функции
- 5. friend - функции -Функция set описана в классе pair как дружественная и определена как обычная глобальная
- 6. friend - функции Итак, дружественная функция: – не может быть компонентной функцией того класса, по отношению
- 7. friend – “методы”
- 8. friend – “методы”
- 9. friend – “методы” В этом примере класс А при помощи своего метода void A::f() получает доступ
- 10. friend - функции -Может быть дружественной по отношению к нескольким классам. Например: // предварительное неполное определение
- 11. Friend - классы -Класс может быть дружественным другому классу. -Это означает, что все методы класса являются
- 12. Friend - классы Например: class X2{friend class X1; . . .}; class X1 {. . .
- 13. Friend - классы Рассмотрим класс point – точка в n-мерном пространстве и дружественный ему класс vector
- 14. Friend - классы
- 15. Friend - классы
- 16. Friend - классы
- 17. Friend - классы
- 18. Friend - классы
- 19. Friend - классы // Будет выведено – 8.
- 20. ПЕРЕГРУЗКА ОПЕРАТОРОВ В языке С++ определены множества операций над переменными стандартных типов, такие как +, *,
- 21. ПЕРЕГРУЗКА ОПЕРАТОРОВ Перегрузка операторов позволяет определить действия, которые будет выполнять оператор. Перегрузка подразумевает создание функции, название
- 22. ПЕРЕГРУЗКА ОПЕРАТОРОВ Определение оператора-функции имеет следующий синтаксис: тип operator “знак оператора”(параметры) { Действия… return тип(); }
- 23. ПЕРЕГРУЗКА УНАРНЫХ ОПЕРАТОРОВ Любой унарный оператор⊕ может быть определен двумя способами: как компонентная функция без параметров
- 24. Два случая перегрузки унарных операторов А) как компонентная функция тип operator “знак оператора”(void) { Действия… }
- 25. ПЕРЕГРУЗКА УНАРНЫХ ОПЕРАТОРОВ Унарные операции инкремента ++ и декремента – существуют в двух формах: префиксной и
- 26. ПЕРЕГРУЗКА УНАРНЫХ ОПЕРАТОРОВ
- 27. ПЕРЕГРУЗКА УНАРНЫХ ОПЕРАТОРОВ
- 28. ПЕРЕГРУЗКА УНАРНЫХ ОПЕРАТОРОВ
- 30. ПЕРЕГРУЗКА БИНАРНЫХ ОПЕРАТОРОВ Любая бинарная операция ⊕ может быть определена двумя способами: -как компонентная функция с
- 31. ПЕРЕГРУЗКА БИНАРНЫХ ОПЕРАТОРОВ При перегрузке операторов стоит учитывать приоритет и ассоциативность. Приоритет операторов задает порядок операций
- 32. ПЕРЕГРУЗКА БИНАРНЫХ ОПЕРАТОРОВ К примеру оператор Поэтому при перегрузке оператора
- 33. ПЕРЕГРУЗКА БИНАРНЫХ ОПЕРАТОРОВ Допустим, у нас есть класс point – точка в двумерном пространстве. Хотим обращаться
- 35. ПЕРЕГРУЗКА БИНАРНЫХ ОПЕРАТОРОВ
- 36. ПЕРЕГРУЗКА БИНАРНЫХ ОПЕРАТОРОВ
- 37. ПЕРЕГРУЗКА БИНАРНЫХ ОПЕРАТОРОВ Перегрузка operator= - оператора присваивания. Операция отличается тремя особенностями: Оператор не наследуется; Оператор
- 38. ПЕРЕГРУЗКА БИНАРНЫХ ОПЕРАТОРОВ Когда следует перегружать оператор присваивания? В большинстве случаев перегрузка не требуется. НО бывают
- 40. ПЕРЕГРУЗКА БИНАРНЫХ ОПЕРАТОРОВ -После побайтного копирования b.mas и a.mas указывают на одну область памяти. -Память, которая
- 41. ПЕРЕГРУЗКА БИНАРНЫХ ОПЕРАТОРОВ Выход – перегрузить оператор присваивания.
- 42. ПЕРЕГРУЗКА БИНАРНЫХ ОПЕРАТОРОВ
- 43. ПЕРЕГРУЗКА БИНАРНЫХ ОПЕРАТОРОВ Оператор присваивания (operator=) ассоциативен справа налево.(порядок чтения). И имеет низкий приоритет. Тут –
- 44. Лабораторная работа №3. Дружественные функции и классы. Перегрузка операторов. Создать класс Pair(пара чисел). Пара должна быть
- 48. Ответы на вопросы 1. Для чего используются дружественные функции и классы? Чтобы предоставить доступ к private
- 49. Ответы на вопросы 2. Сформулируйте правила описания и особенности дружественных функций. - Дружественная функция объявляется внутри
- 50. Ответы на вопросы 3. Каким образом можно перегрузить унарные операции. -Как компонентные нестатические функции класса. тип
- 51. Ответы на вопросы 4. Сколько операндов должна иметь унарная функция-операция, определяемая внутри класса. - Унарная операция
- 52. Ответы на вопросы
- 53. Ответы на вопросы 7. Сколько операндов должная иметь бинарная функция-операция, определяемая вне класса? - Если оператор
- 54. Ответы на вопросы 8. Чем отличается перегрузка префиксных и постфиксных унарных операций. -Префиксные и постфиксные операции
- 55. Ответы на вопросы 9. Каким образом можно перегрузить операцию присваивания. - Оператор присваивания можно перегрузить только
- 56. Ответы на вопросы 11. Каким образом можно перегрузить операции ввода-вывода? - Для того, чтобы обеспечить взаимодействие
- 57. Ответы на вопросы 12. В программе описан класс class Student { … Student& operator++(); …. };
- 58. Ответы на вопросы 13. В программе описан класс class Student { … friend Student& operator ++(
- 59. Ответы на вопросы 14. В программе описан класс class Student { … bool operator …. };
- 61. Скачать презентацию