PDA

View Full Version : کلاس دوست



aidin110
جمعه 15 دی 1391, 17:03 عصر
سلام
چطور میشه دوتا کلاس که تو هدرهای مختلف تعریف شدن رو دوست قرار داد؟
با include کردن فقط یکی رو میتونی دوست قرار بدی ولی من میخوام هر دو کلاس بتونن از private همدیگه استفاده کنن، میشه همچین چیزی؟

lexical_error
جمعه 15 دی 1391, 18:46 عصر
سلام
برای اینکه دو کلاس رو دوست معرفی کنید نیازی به include کردن نیست
شما کلاسی که میخواین به اعضای کلاس دیگر دسترسی داشته باشه رو باید داخل بدنه کلاس و با دستور friend مشخص کنید.و اسم این کلاس رو بالای اسم کلاسی که به عنوان دوست به این کلاس اضافه کردین رو ذکر کنین و یک ; انتهای آن قرار بدید.

class sample1
{
public:
friend class sample2;
};

////////////////////

class sample1;
class sample2
{
//Commands
};

aidin110
جمعه 15 دی 1391, 20:47 عصر
سلام
ممنون از پاسختون ولی این شد نحوه ی تعریف کلاس یا تابع دوست!
من میخوام هر دو کلاس دوس همدیگه باشه :)
البته دو کلاسی که هر کدون تو یه فایل هدر تعریف شده (یعنی هرکدوم تو یه فایل h شده) باشه.
اگه اولی رو تو دومی include کنی با روش بالا میشه یکی رو (یعنی اولی رو) دوست این یکی کنی ولی دیگه نمیتونی دومی رو تو اولی include کنی چون اولی رو تو دومی include کردی و کامپایلر error میده....

lexical_error
جمعه 15 دی 1391, 21:17 عصر
دوست عزیز نیازی نیست که داخل فایل هدری که کلاس رو تعریف میکنید چیزی include کنید
شما دو تا فایل هدر کلاستون رو داخل فایل اصلی برنامه include کنین