هدف تابع friend در سی پلاس پلاس چیه؟

سوال

سلام به همگی امیدوارم لحظه تون زیبا باشه.

من تازه با یکسری از مفاهیم شی گرایی سی پلاس پلاس آشنا شدم !

به تابع friend برخورد کردم! اما درک نکردم چیه

اگر ممکنه از عزیزان منو راهنمایی کنند.

 

حل شده 0
Sahand 11 ماه 1 پاسخ 64 دیده شده 0

پاسخ ( ۱ )

  1. سلام و درود خدمت شما دوست عزیز

    کلاس friend یا همان کلاس دوست به اعضای خصوصی و محافظت شده ای که در آن به عنوان کلاس دوست معرفی شده است، دسترسی دارد.

    در مبحث Access Modifier و دسترسی به کلاس ها ۳ نوع سطوح دسترسی داریم که عبارت است از :

    • Public (عمومی)
    • Private(خصوصی)
    • Protected(محافظت شده)

    اگه توابع یک کلاس را به عنوان private در نظر بگیریم فقط قابل استفاده و شناسایی برای توابع و اجزای درونی کلاس میباشد و توابع بیرونی نمی توانند به توابع خصوصی دسترسی داشته باشند.

    برای حل این موضوع میتوان از تابع Friend استفاده کرد, پس تابع Friend قابلیت ویژه ای دارد که میتواند به تمامی اجزای کلاس دسترسی داشته باشد حتی اگر توابع کلاس خصوصی و محافظت شده نیز باشد تفاوتی نمی کند و به آنها دسترسی دارد.

    ویژگی های تابع Friend

    دوستی دو طرفه امکان پذیر نیست : اگر کلاس Red دوست کلاس blue شود کلاس blue نمی تواند دوست کلاس Red  شود

    رابطه دوستی تعدی وجود ندارد : اگر کلاس Red دوست کلاس blue باشد و کلاس blue دوست کلاس green باشد،

    کلاس  Red دوست کلاس green نیست.

    دوستی ارث بری نمی شود : دوست کلاس والد به خودی خود دوست کلاس فرزند نمی شود و بالعکس، اگه کلاس والد دوست یک کلاس دیگر شود کلاس فرزند دوست آن خطاب نمی شود.

     

     

    بهترین پاسخ

ارسال یک پاسخ