شما این محصولات را انتخاب کرده اید

سبد خرید

مفهوم تابع دوست (Friend Function) در C++
شناسه پست: 12403
بازدید: 7

مفهوم تابع دوست (Friend Function) در C++

توضیحات:

تابع دوست یک تابع است که به عنوان دوست یک کلاس تعریف می‌شود و به آن اجازه می‌دهد تا به داده‌های خصوصی (private) و محافظت شده (protected) کلاس دسترسی داشته باشد. این به معنی این است که تابع دوست می‌تواند به داخل کلاس دسترسی داشته باشد و از ویژگی‌ها و روش‌های خصوصی و محافظت شده آن استفاده کند.

برای تعریف یک تابع دوست، تابع را به عنوان یک تابع عادی خارج از کلاس تعریف کرده و سپس با استفاده از کلمه کلیدی friend آن را به عنوان دوست کلاس مورد نظر تعریف می‌کنیم. به عنوان مثال:

class MyClass {
private:
    int privateData;

public:
    MyClass(int data) : privateData(data) {}

    friend void friendFunction(MyClass obj);
};

void friendFunction(MyClass obj) {
    cout << "Accessing private data: " << obj.privateData << endl;
}

int main() {
    MyClass obj(10);
    friendFunction(obj); // خروجی: Accessing private data: 10
    return 0;
}

در این مثال، تابع friendFunction به عنوان دوست کلاس MyClass تعریف شده است و می‌تواند به داده خصوصی privateData کلاس MyClass دسترسی داشته باشد. در تابع friendFunction می‌توانیم به داده privateData دسترسی پیدا کرده و آن را چاپ کنیم.

توجه داشته باشید که استفاده از توابع دوست باید با احتیاط انجام شود، زیرا این امکان به توابع خارجی دسترسی به داده‌های خصوصی کلاس می‌دهد و ممکن است امنیت کد را به خطر بیندازد. بهتر است از توابع دوست تنها در صورت لزوم و با دقت استفاده شود.

موفق باشید

A.J

پست های مرتبط:

شما می‌توانید از سورس های آماده به راحتی و با کپی پیست در پروژه خود استفاده بفرمایید

بله! سورسا به عنوان اولین و برترین مرجع سورس کد های آماده، تمامی سورس کد ها در زبان های مختلف را به صورت رایگان در اختیار شما قرار می‌دهد.

اگر سورس مد نظر شما تفاوتی با سورس فعلی دارد یا اینکه درخواست سورس دیگری را دارید می‌توانید با کارشناسان سورسا در ارتباط باشید.

سورسا به عنوان مرجع سورس در تلاش است سورس کد ها و آموزش های تمامی زبان های برنامه نویسی مانند GO C++ Python C PHP SQL JS و… را تحت پوشش قرار داد

اشتراک در
اطلاع از
guest

0 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها