وراثت و چند ریختی در سی پلاس پلاس(بخش اول)
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
آموزش وراثت و چند ریختی در سی پلاس پلاس:
در این جلسه با مفاهیم وراثت و چند ریختی در زبان ++C آشنا میشوید. یکی از پرارزش ترین امکاناتی که شیگرایی در اختیار ما قرار میدهد، بحث وراثت است و میتوانیم به کمک آن یک کدنویسی خیلی تمیزتر و با قدرتمندتر و با امکانات بیشتری ایجاد کنیم که امکان توسعه آن خیلی راحت تر میباشد و خیلی بهتر میتوانیم پروژه یا برنامه خودمان را توسعه دهیم. مبحث وراثت در همه زبانهای برنامه نویسی شیگرا وجود دارد. البته وراثت یک مقدار در زبان ++C با قدرت بیشتر امکان پذیر است و اگر این مبحث را در زبان سی پلاس پلاس یاد بگیرید، حتما در زبانهای دیگر هم خیلی راحت یاد میگیرید.
در نظر بگیرید شما در یک سیستمی که احتمال دارد کاربران یا افراد مختلفی در آن سیستم وجود دشته باشند. این افراد با نقشهای مختلفی داخل سیستم وجود دارند و کارهای خودشان را انجام میدهند. شاید برای این افراد یک سری ویژگیها و عملیات مشترک وجود داشته باشد، که اگر بخواهیم این افراد را از هم تفکیک کنیم و کاملا مجزا از هم در سیستم در نظر بگیریم باید صفتها و فعالیتها را برای تک تک آنها تعریف کنیم. برای مثال سیستم دانشگاه را در نظر بگیریم در این سیستم ما سه دسته شخص داریم، دانشجویان، اساتید و کارمندان. این سه دسته دارای یک سری ویژگیهای اختصاصی خودشان هستند. اساتید دارای کد استاد، مدرک تحصیلی میباشند یا دانشجویان دارای رشته تحصیلی، شماره دانشجویی هستند و کارمندان سال استخدام، سمتی که در دانشگاه دارند. اما این سه دسته در سیستم دانشگاه دارای یک سری صفتهای مشترک مانند نام، نام خانوادگی، آدرس، تلفن، کد ملی هستند. اگر قرار باشد این سه دسته را کاملا مجزا در سه کلاس تعریف کنیم و برای هرکدام صفتهای خاص خوشان را بنویسیم، این کار باعث تکرار شدن اطلاعات یا حتی توابع داخل کلاس میشوند. مثلا اگر داخل کلاس دانجشو تابع چاپ اطلاعات را داشتیم برای کلاس استاد هم باید همین تابع را داشته باشیم.
اگر چندین موجودیت داشتیم که دارای صفتهای مشترک بودند، بهتر است که صفتهای مشترکشان را داخل یک کلاس بالا دستی قرار دهیم و صفتهای غیر مشترکشان در کلاس خوشان باشد. به این ترتیب از خاصیت ارث بری میتوانیم استفاده کنیم و کلاسهای فرزند از کلاسهای والد ارث ببرند. در واقع کلاسهای فرزند میتوانند صفتها یا توابعی که متعلق به کلاس والدشان است را ارث ببرند. عملا وراثت شامل یک کلاس والد است که پایه و اساس اطلاعات در آن قرار دارد و یک کلاس فرزند است که از کلاس والد یک سری صفتها و توابع را به ارث میبرد.
در این آموزش با مثالهای کاربردی با مبحث چند ریختی در وراثت، کاربرد توابع سازنده و مخرب در وراثت، اشاره گر در وراثت و توابع مجازی (virtual) به طور کامل آشنا میشوید.
دوست درسمنی عزیز، امیدواریم از این آموزش لذت برده باشید.
برای یادگیری این مبحث میتوانید این درس را تهیه کنید و از فایلها و ویدئو این بخش استفاده کنید.
شما عزیزان میتوانید سوالات خود را در بخش انجمن پرسش و پاسخ مطرح کنید و همچنین منتظر انتقادات و پیشنهادات مفید شما در بخش نظرات هستیم تا ما را در کیفیت بهتر آموزشهایمان یاری کنید.
با امید موفقیت و شادی برای شما دوست درسمنی عزیز
انجمن ++C کاران درسمن
نظرات دانشجویان
سلام خسته نباشین. درمورد کلاس های والد انتزاعی که بخش اخر وراثت بود توضیحی ندادین. فکر کنم یک ویدیو جا مونده از این دوره ممنون میشم رسیدگی کنین
سلام دوست عزیز وقتتون بخیر، بنده از مدرس پیگیری خواهم کرد.
عرض سلام و خسته نباشید خدمت تمامی عزیزان درسمن در آیتم های دوره پیشرفته سی پلاس پلاس مبحث چندریختی بخشی از جلسه آخر هست ولی تدریش نشده ،نه تو جلسه آخر و نه تو جلسات قبلی و اینکه آموزش مربوط به توابع مجازی هم فیلمش کامل نیست .میشه یه توضیحی بدین . ممنون
سلام سینا جان، مواردی که ذکر کردید را با مهندس عباسی در میان خواهم گذاشت و جوابش را بهتون خواهم گفت، ممنون از اینکه آموزش های ما را دنبال می کنید، موفق و پیروز باشید.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.