ми класу, але проте мають доступ до його закритих членів. Більше того, одна така функція може мати доступ до закритих членам декількох класів. Щоб оголосити функцію дружньої деякому класу, у визначення цього класу включають її прототип, перед яким ставиться ключове слово friend. ostream & operator <<(ostream & os, const Vector & A)
Дружня функція не є членом класу, в якому вона оголошена. Тому, викликаючи дружню функцію, не потрібно вказувати ім'я об'єкта або покажчик на об'єкт і операцію доступу до члена класу (точку або стрілку). Доступ до закритих членів класу дружня функція отримує тільки через об'єкт класу, який в силу цього повинен бути або оголошений всередині функції, або переданий їй як аргумент. p align="justify"> Функція може бути дружня відразу декількох класах.
.4 Неявний покажчик this
Кожен метод класу містить в якості даного наступний покажчик, переданий при виклику методу як параметр:
імя_тіпа * this;
Цей покажчик являє собою адресу конкретного об'єкта, для якого був викликаний метод.
Використовувати покажчик this для доступу до елементів класу можна, але навряд чи доцільно, оскільки це і так мається на увазі за умовчанням. Явно використовувати this необхідно тільки в тих випадках, коли потрібна робота безпосередньо з адресами об'єктів, наприклад, при організації динамічних структур даних. p align="justify"> Код програми
# include "stdafx.h"
# include
# include "conio.h"
# include "time.h" namespace std;
// КЛАС VectorVector
{: * V; sz; // число рядків:
// конструктор за замовчуванням ();
// конструктор (int sz);
// конструктор копій (const Vector & A);
// заповнення вектора випадковими чісламіSetVector ();
// перевантаження оператора привласнення & operator = (Vector & A);
// перевантаження оператора сложеніяoperator + (Vector &);
// перевантаження оператора вичітаніяoperator-(Vector &);
// перевантаження оператора множення на чіслоoperator * (const int &);
// перевантаження оператора множення вектора на векторoperator * (Vector &);
// перевантаження оператора виводу в потокostream & operator <<(ostream & os, const Vector & A);
// деструктор
~ Vector ();
};
// Конструктор за замовчуванням :: Vector ()
{= NULL;
}
// Конструктор :: Vector (int _sz) ...