ні реалізації операцій.
Наприклад, щоб перевантажити оператор додавання, потрібно визначити функцію з ім'ям operator +.
Операторні функції перевантажених операторів, за винятком new і delete, повинні підкорятися наступним правилам:
операторна функція повинна бути або нестатичних фенкціей-членом класу, або приймати аргумент типу класу або перечислимого типу, або аргумент, який є посиланням на тип класу або перелічувальний тип;
операторна функція не може змінювати число аргументів чи пріоритети операторів та порядок їх виконання в порівнянні з використанням соответствующео оператора для вбудованих типів даних;
операторна функція Унарні оператора, оголошена як функція-член, не повинна мати параметрів; якщо ж вона оголошена як глобальна функція, вона повинна мати один параметр;
операторна функція не може мати параметри за замовчуванням і ін
.3 Дружні функції
Згідно концепції інкапсуляції даних С + + функція, яка не є членом класу, не може отримати доступ до його закритим (private) елементам. p align="justify"> У мові С + + реалізована можливість обійти це обмеження за допомогою друзів. С + + дозволяє оголосити 2 види друзів класу: дружню функцію або дружній клас. p align="justify"> Дружні функції не є членами класу, але проте мають доступ до його закритих членів. Більше того, одна така функція може мати доступ до закритих членам декількох класів. p align="justify"> Щоб оголосити функцію дружньої деякому класу, у визначення цього класу включають її прототип, перед яким ставиться ключове слово friend. br/>
friend ostream & operator <<(ostream & os, const Matrix & A)
Дружня функція не є членом класу, в якому вона оголошена. Тому, викликаючи дружню функцію, не потрібно вказувати ім'я об'єкта або покажчик на об'єкт і операцію доступу до члена класу (точку або стрілку). Доступ до закритих членів класу дружня функція отримує тільки через об'єкт класу, який в силу цього повинен бути або оголошений всередині функції, або переданий їй як аргумент. p align="justify"> Функція може бути дружня відразу декількох класах.
.4 Неявний покажчик this
Кожен метод класу містить в якості даного наступний покажчик, переданий при виклику методу як параметр:
імя_тіпа * this;
Цей покажчик являє собою адресу конкретного об'єкта, для якого був викликаний метод.
Використовувати покажчик this для доступу до елементів класу можна, але навряд чи доцільно, оскільки це і так мається на увазі за умовчанням. Явно використовувати this необхідно тільки в тих випадках, коли потрібна робота безпосередньо з адресами об'єктів, наприклад, при організації динамічних с...