برای اینکه به یک تابع یا کلاس (مثلا تابع B) اجازه دهیم که به مقادیر کلاس (مثلا  A) دسترسی پیدا کند . باید برای کلاس A تعریف کنیم که تابع یا کلاس B را به عنوان دوست در نظر بگیر برای این کار از کلمه کلیدی friend در بدنه کلاس A به همراه امضای تابع B استفاده می کنیم :

class A
{
friend void B();
};
void B() {}

برای مثال کلاسی به نام test را در نظر بگیرد . تابع show برای این کلاس را به صورت دوست تعریف می کنیم:

#include <iostream>
using namespace std;
class test
{
int x,y;
friend void show(test);
public:
test(int a,int b) //contractor
{
x=a;
y=b;
}
};
void show(test T) 
{
cout<<T.x<<T.y<<endl;
}

int main(int argc, char** argv) {

test A(2,3);
show(A);

test B(8,9);
show(B);

return 0;
}


و برای دو کلاس به عنوان دوست :

کلاس B به عنوان دوست برای کلاس A تعریف شده است یعنی می تواند به متغییر ها و توابع خصوصی و محافظت شده ی آن دسترسی داشته باشد . ان دسترسی از طریق شی از A امکان پذیر است مثلا در این مثال ما به کمک شی a از نوع کلاس A در تابع set کلاس B مقادیر x و y را تغییر می دهیم.


#include "stdafx.h"
#include <iostream>
using namespace std;
class A
{
friend class B;
private:
int x;
protected:
int y;
public:
A(){ x = 0; y = 0; } //contractor
};
class B
{
public:
void set(A a)
{
a.x = 2;
a.y = 2;
}
};



int _tmain(int argc, _TCHAR* argv[])
{
B Mb;
A Ma;
Mb.set(Ma);
return 0;
}


برنامه عملیات ریاضی رو چند جمله ای ها Polynomial

سر بارگذاری عملگر ها

توابع و کلاس های دوست

b ,کلاس ,تابع ,a ,test ,void ,برای این ,در نظر ,void show ,کلاس a ,می کنیم

مشخصات

تبلیغات

آخرین ارسال ها

برترین جستجو ها

آخرین جستجو ها

داستان های آموزشی لباس زیر جوراب لباس ورزشی آرایشی زنانه در ایران ?What Are You Doing جلیل اقا محمدی _فعال فرهنگی دبیرخانه معماری مجله تخصصی مطالعات آمریکا پروژه آنلاین دانلود پروژه املاک رومشکان طراحی سایت