سلام!

این مبحث‌ (مثل مباحث قبلی) مهم است؛ بنابراین دقت کنید.

این جلسه قرار است به مبحث دوستی در کلاس ها بپردازیم. با کمک این مفهوم شما می توانید به یک class اجازه بدهید که به عضوهای private (و protected) یک class دیگر دسترسی داشته باشد. مثلا فرض کنید که یک class دارید به نام A. برای این که به یک class (مثل B) اجازه بدهید که به عضوهای private و protected ازA دسترسی داشته باشد، می توانید در A بنویسید:

friend class B;

معنی این خط کد این است: یک class به نام B وجود دارد که دوست من است و می تواند از تمامی عضوهای من استفاده کند.

این مفهوم می تواند برای توابع نیز به کار رود؛ مثلا شما می توانید بنویسید:

friend void set(A);

حالا می توانید تابعی به نام set تعریف کنید که یک A ورودی بگیرد و به تمامی عضوهای آن دسترسی داشته باشد. کاربرد اصلی این مبحث را در جلسه های بعدی متوجه خواهید شد.

برای تمرین می توانید سوال های زیر را حل کنید.

۱. یک class به نام Rectangle تعریف کنید. برای آن دو عدد (طول و عرض) تعریف کنید. سپس دو عدد از کاربر بگیرید و با کمک یک تابع (خارج از class) طول و عرض واقع در class را مساوی این دو عدد قرار دهید (طول و عرض private باشند).

۲. یک class به نام Point تعریف کنید. این class باید شامل دو مؤلّفه (x و y) باشد. حالا خارج از class تابعی تعریف کنید که دو متغیر به عنوان ورودی بگیرد و مؤلّفه های Point را مساوی با آن ها قرار دهد.

می توانید خودتان هم تمرین های دیگری طراحی کنید.

موفق باشید!