چه تفاوتی بین کلاس های private، public و protected در C++ وجود دارد؟

چه تفاوتی بین کلاس های public، private و protected در ارث بری c++ وجود دارد؟ شاید سوال من خیلی مبتدی باشه و داخل گوگل میشه پیداش کرد ولی هیچ وب سایتی به صورت منظم و دقیق توضیحات تکمیلی نداده.

برچسب ها:
پرسیده شده در: 2 سال قبل
آمار بازدید: 2136
pirniak (339)
بیش از ۱ سال عضویت در روکسو بیش از ۱ سال عضویت در روکسو دارای سوال با ۱۰ رأی دارای سوال با ۱۰ رأی ارسال کننده پاسخ با ۱۰ رای ارسال کننده پاسخ با ۱۰ رای دارای ۲۰۰ کارما دارای ۲۰۰ کارما
2

برای پاسخ به سوال شما ابتدا باید درباره این کلمات صحبت کنیم. اینجا سه واژه public، private و protected وجود دارد که برای تعریف یک سری ویژگی ها معمولا در کلاس ها استفاده می شود. به نمونه زیر توجه کنید:

class Base {
    public:
        int publicMember;
    protected:
        int protectedMember;
    private:
        int privateMember;
};
  • در هر نقطه ای و هر مکانی شما می توانید از ویژگی publicMember از کلاس Base استفاده کنید. به عبارت دیگر این ویژگی در تمام کلاس ها فارغ از هرگونه وابستگی در دسترس است.
  • از طرفی تنها کلاس های فرزند Base (و کلاس هایی که از این کلاس فرزند ارث بری می کنند) می توانند از متغییر protectedMember استفاده کنند.
  • و در نهایت تنها کلاس Base می تواند به صورت انحصاری از متغییر privateMember بهره ببرد.

ارائه با مفهوم ارث بری:

برای روشن تر شدن این موضوع فرض کنید کلاس Base (کلاس والد) یک کلاس فرزند به نام Child دارد که تمام ویژگی های کلاس والد را به ارث برده است. حال:

اگر کلاس Base به صورت public نوشته شود، در تمام نقاط برنامه به صورت کامل در دسترس می باشد.

اگر کلاس Base به صورت protected نوشته شود، تنها در کلاس فرزند Child و سایر کلاس های وابسته به آن (کلاس های فرزند Child) قابل دسترس است.

اگر کلاس Base به صورت private نوشته شود، هیچ کلاسی نمی تواند از ویژگی های آن بهره ببرد حتی کلاس فرزند.

ارسال شده در: 2 سال قبل
masoudsalehi (1345)
بیش از ۲ سال عضویت در روکسو بیش از ۲ سال عضویت در روکسو دارای 1000 کارما دارای 1000 کارما دارای 10 پاسخ صحیح دارای 10 پاسخ صحیح ارسال کننده پاسخ با 25 رای ارسال کننده پاسخ با 25 رای
جهت ارسال پاسخ ابتدا عضو سایت شوید.
اینستاگرام روکسو

روکسو در اینستاگرام

به جمع هزاران کاربر اینستاگرامی روکسو بپیوندید.