انواع مختلف وراثت در ++C – راهنمای کاربردی


در این مقاله با مفاهیم وراثت عمومی، حفاظتشده و خصوصی در ++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 هستند.
در جداول زیر شرایط دسترسپذیری در زمان ارثبری توضیح داده شده است.
دسترسپذیری در موارد وراثت عمومی
دسترسپذیری | متغیرهای خصوصی | متغیرهای حفاظت شده | متغیرهای عمومی |
---|---|---|---|
از کلاس خود دسترسپذیر است؟ | بلی | بلی | بلی |
از کلاس مشتق شده دسترسپذیر است؟ | خیر | بلی | بلی |
از کلاس مشتق شده ثانویه دسترسپذیر است؟ | خیر | بلی | بلی |
دسترسپذیری در موارد وراثت حفاظت شده
دسترسپذیری | متغیرهای خصوصی | متغیرهای حفاظت شده | متغیرهای عمومی |
---|---|---|---|
از کلاس خود دسترسپذیر است؟ | بلی | بلی | بلی |
از کلاس مشتقشده دسترسپذیر است؟ | خیر | بلی | بلی (به صورت حفاظت شده به ارث میرسد) |
از کلاس مشتق شده ثانویه دسترسپذیر است؟ | خیر | بلی | بلی |
دسترسپذیری در موارد وراثت خصوصی
دسترسپذیری | متغیرهای خصوصی | متغیرهای حفاظت شده | متغیرهای عمومی |
---|---|---|---|
از کلاس خود دسترسپذیر است؟ | بلی | بلی | بلی |
از کلاس مشتقشده دسترسپذیر است؟ | خیر | بلی (به صورت خصوصی به ارث میرسد) | بلی (به صورت حفاظتشده به ارث میرسد) |
از کلاس مشتق شده ثانویه دسترسپذیر است؟ | خیر | خیر | خیر |
برای مطالعه بخش بعدی این سری مقالات روی لینک زیر کلیک کنید:
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- آموزش پیشرفته C++ (شی گرایی در سی پلاس پلاس)
- مجموعه آموزشهای دروس علوم و مهندسی کامپیوتر
- مدیریت حافظه در ++C — راهنمای جامع
- برنامه محاسبه رتبه الفبایی یک رشته — راهنمای کاربردی
==