در این مقاله با مفاهیم وراثت عمومی، حفاظت‌شده و خصوصی در ++C آشنا می‌شویم و با بررسی مثال‌هایی متوجه خواهیم شد که کجا و چگونه می‌توانیم از هر کدام از انواع مختلف وراثت در ++C بهره بگیریم. برای مطالعه بخش قبلی از این مجموعه مقالات آموزشی روی لینک زیر کلیک کنید:

می‌توان یک «کلاس مشتق» (Derived Class) را از یک «کلاس مبنا» (Base Class) با کنترل‌های دسترسی متفاوتی اعلان کرد. برای نمونه می‌توان از وراثت عمومی، وراثت حفاظت‌شده و یا وراثت خصوصی در این مورد استفاده کرد.

نکته: کلیدواژه‌های public ،protected یا private به جای اصطلاح access_specifier در کد فوق مورد استفاده قرا می‌گیرند.

مثال‌هایی از وراثت عمومی، حفاظت‌شده و خصوصی در ++C

در کد فوق موارد زیر قابل توجه هستند:
  • Base سه متغیر عضو به نام‌های x ،y و z دارد که به ترتیب public ،protected و private هستند.
  • publicDerived متغیرهای x و y را به صورت عمومی و حفاظت‌شده به ارث می‌برد. Z به ارث نمی‌رسد، زیرا متغیر عضو خصوصی کلاس مبنا است.
  • protectedDerived متغیرهای x و y را به ارث می‌برد. هر دو متغیر حفاظت‌شده می‌شوند. z ارث‌بری نمی‌شود.
  • اگر یک کلاس به نام derivedFromProtectedDerived از protectedDerived مشتق کنیم، متغیرهای x و y نیز به این کلاس مشتق به ارث می‌رسند.
  • privateDerived متغیرهای x و y را به ارث می‌برد. هر دو متغیر خصوصی می‌شوند. z به ارث نمی‌رسد.
  • اگر یک کلاس به نام derivedFromPrivateDerived از privateDerived ارث‌بری کند، متغیرهای x و y به ارث نمی‌رسند، زیرا متغیرهای خصوصی privateDerived هستند.

در جداول زیر شرایط دسترس‌پذیری در زمان ارث‌بری توضیح داده شده است.

دسترس‌پذیری در موارد وراثت عمومی

دسترس‌پذیری متغیرهای خصوصی متغیرهای حفاظت شده متغیرهای عمومی
از کلاس خود دسترس‌پذیر است؟ بلی بلی بلی
از کلاس مشتق شده دسترس‌پذیر است؟ خیر بلی بلی
از کلاس مشتق شده ثانویه دسترس‌پذیر است؟ خیر بلی بلی

دسترس‌پذیری در موارد وراثت حفاظت شده

دسترس‌پذیری متغیرهای خصوصی متغیرهای حفاظت شده متغیرهای عمومی
از کلاس خود دسترس‌پذیر است؟ بلی بلی بلی
از کلاس مشتق‌شده دسترس‌پذیر است؟ خیر بلی بلی (به صورت حفاظت شده به ارث می‌رسد)
از کلاس مشتق شده ثانویه دسترس‌پذیر است؟ خیر بلی بلی

دسترس‌پذیری در موارد وراثت خصوصی

دسترس‌پذیری متغیرهای خصوصی متغیرهای حفاظت شده متغیرهای عمومی
از کلاس خود دسترس‌پذیر است؟ بلی بلی بلی
از کلاس مشتق‌شده دسترس‌پذیر است؟ خیر بلی (به صورت خصوصی به ارث می‌رسد) بلی (به صورت حفاظت‌شده به ارث می‌رسد)
از کلاس مشتق شده ثانویه دسترس‌پذیر است؟ خیر خیر خیر

برای مطالعه بخش بعدی این سری مقالات روی لینک زیر کلیک کنید:

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

میثم لطفی (+)

«میثم لطفی» دانش‌آموخته ریاضیات و شیفته فناوری به خصوص در حوزه رایانه است. وی در حال حاضر علاوه بر پیگیری علاقه‌مندی‌هایش در رشته‌های برنامه‌نویسی، کپی‌رایتینگ و محتوای چندرسانه‌ای، در زمینه نگارش مقالاتی با محوریت نرم‌افزار نیز با مجله فرادرس همکاری دارد.

بر اساس رای 3 نفر

آیا این مطلب برای شما مفید بود؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *