Приятелски Функции
| Информационни технологии | 2009-12-04 | 53 сваляния |
-
Приятелски Функции
-
Функции, които имат достъп до всички компоненти на класа така, както и член-функциите на класа.
-
Декларацията на приятелската функция може да се намира както в частта public, така и в частта private и се характеризира с ключовата дума friend, която се поставя в началото на декларацията.
-
Приятелските функции не са член-функции и не получават по неявен начин параметъра this. Това изисква подаването на обект по явен начин като параметър на функцията.
Общ вид на извикване на приятелска функция:
име_на_функция(списък фактически параметри);
1. Независима функция - приятелска за класа
-
Приятелската функция има един или повече параметри от тип клас или връщан резултат от тип клас.
-
Параметрите на приятелската функция могат да се предават по адрес или постойност.
Общ вид:
class A
{ //член-данни
friend void fun(A,A&); //декларация на приятелска функция
//в частта private
public:
//декларации на член-функции на класа А
};
//дефиниции на член-функции на класа А
void fun(A a, A& b) //дефиниция на приятелска функция
{..}
Пример
#include
class point
{ int x,y;
public:
point(int a=0,int b=0)
{ x=a; y=b; }
//деклариране на независима приятелска функция
friend int coincide(point,point);
};
int coincide(point p,point q) //обекти p и q предавани по стойност
{ if(p.x==q.x && p.y==q.y) return 1;
else return 0;
}
void main()
{ point a(1,0),b(1),c;
if(coincide(a,b)) cout<< точките съвпадатn;
else cout<<точките са различниn;
if(coincide(a,c)) cout<< точките съвпадатn;
else cout<<точките са различниn;
}
Резултати от изпълнение
Тагове от реферата: ятески, приятски, ункции, достъп, всички











