внянні з використанням соответствующео оператора для вбудованих типів даних;
операторна функція Унарні оператора, оголошена як функція-член, не повинна мати параметрів; якщо ж вона оголошена як глобальна функція, вона повинна мати один параметр;
операторна функція не може мати параметри за замовчуванням і ін
Дружні функції
Згідно концепції інкапсуляції даних С + + функція, яка не є членом класу, не може отримати доступ до його закритим (private) елементам.
У мові С + + реалізована можливість обійти це обмеження за допомогою друзів. С + + дозволяє оголосити 2 види друзів класу: дружню функцію або дружній клас. p align="justify"> Дружні функції не є членами класу, але проте мають доступ до його закритих членів. Більше того, одна така функція може мати доступ до закритих членам декількох класів. p align="justify"> Щоб оголосити функцію дружньої деякому класу, у визначення цього класу включають її прототип, перед яким ставиться ключове слово friend.
ostream & operator <<(ostream & os, const Matrix & A)
Дружня функція не є членом класу, в якому вона оголошена. Тому, викликаючи дружню функцію, не потрібно вказувати ім'я об'єкта або покажчик на об'єкт і операцію доступу до члена класу (точку або стрілку). Доступ до закритих членів класу дружня функція отримує тільки через об'єкт класу, який в силу цього повинен бути або оголошений всередині функції, або переданий їй як аргумент. p align="justify"> Функція може бути дружня відразу декількох класах.
Неявний покажчик this
Кожен метод класу містить в якості даного наступний покажчик, переданий при виклику методу як параметр:
імя_тіпа * this;
Цей покажчик являє собою адресу конкретного об'єкта, для якого був викликаний метод.
Використовувати покажчик this для доступу до елементів класу можна, але навряд чи доцільно, оскільки це і так мається на увазі за умовчанням. Явно використовувати this необхідно тільки в тих випадках, коли потрібна робота безпосередньо з адресами об'єктів, наприклад, при організації динамічних структур даних. p align="justify"> Створимо програму, яка буде реалізовувати роботу з класом Matrix.
Код програми
# include "stdafx.h"
# include
# include "conio.h"
# include "math.h"
# include "time.h" namespace std;
// КЛАС MATRIXMatrix
{: ** M; m; // число строкn; // число стовпців:
// конструктор за замовчуванням ();
...