русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Дружні функції


Дата додавання: 2014-04-22; переглядів: 1017.


Принцип інкапсуляції і обмеження доступу до даних забороняє функціям, що не є методами відповідних класів, доступ до прихованих (private) чи захищених даних об’єкту. Політика цих принципів ООП така, що, коли функція не є членом об’єкту, то вона не може користуватися певним рядом даних. Тим не менше, існують ситуації, коли така жорстка дискримінація призводить до значних незручностей.

 

Дружні функції як мости між класами

Нехай нам необхідно, щоб функція працювала з об’єктами двох різних класів. Напприклад, функція буде розглядати об’єкти двох класів як аргументи і оброблятиме їх приховані дані. В програмі 13.8 приведено простий приклад FRIEND, що дає уявлення про роботу дружніх функцій в якості мостів між двома класами.

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#include<bios.h>

class beta;

/////////////

class alpha

{private:

int data;

public:

alpha():data(3) { } // конструктор без аргументів

friend int frifunc(alpha,beta);

};

////////////

class beta

{private:

int data;

public:

beta():data(5) { } //конструктор без аргументів

friend int frifunc(alpha,beta);

};

////////////


<== попередня лекція | наступна лекція ==>
Віртуальні базові класи | Int frifunc(alpha a,beta b)


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн