چه تفاوتی بین کلاس های public، private و protected در ارث بری c++ وجود دارد؟ شاید سوال من خیلی مبتدی باشه و داخل گوگل میشه پیداش کرد ولی هیچ وب سایتی به صورت منظم و دقیق توضیحات تکمیلی نداده.
برای پاسخ به سوال شما ابتدا باید درباره این کلمات صحبت کنیم. اینجا سه واژه public، private و protected وجود دارد که برای تعریف یک سری ویژگی ها معمولا در کلاس ها استفاده می شود. به نمونه زیر توجه کنید:
class Base {
public:
int publicMember;
protected:
int protectedMember;
private:
int privateMember;
};
ارائه با مفهوم ارث بری:
برای روشن تر شدن این موضوع فرض کنید کلاس Base (کلاس والد) یک کلاس فرزند به نام Child دارد که تمام ویژگی های کلاس والد را به ارث برده است. حال:
اگر کلاس Base به صورت public نوشته شود، در تمام نقاط برنامه به صورت کامل در دسترس می باشد.
اگر کلاس Base به صورت protected نوشته شود، تنها در کلاس فرزند Child و سایر کلاس های وابسته به آن (کلاس های فرزند Child) قابل دسترس است.
اگر کلاس Base به صورت private نوشته شود، هیچ کلاسی نمی تواند از ویژگی های آن بهره ببرد حتی کلاس فرزند.
به جمع هزاران کاربر اینستاگرامی روکسو بپیوندید.