
آموزش جامع زبان برنامهنویسی C++ مقدماتی تا پیشرفته [0 تا 100 سی پلاس پلاس بهمراه حل تمرین و پروژه ✅] - بررسی وراثت (Inheritance) در شیگرایی - قسمت 77
در این قسمت از دوره آموزش برنامهنویسی C++، به یکی از مهمترین مفاهیم شیگرایی، یعنی وراثت (Inheritance) میپردازیم. در قسمت قبلی در رابطه با کپسولسازی (Encapsulation) صحبت کردیم. در این قسمت میخواهیم به توضیح مفاهیم وراثت بپردازیم که به ما کمک میکند تا از تکرار کد جلوگیری کنیم و قابلیتهای بیشتری به کلاسهای خود اضافه کنیم.
مفهوم وراثت (Inheritance) در C++
وراثت یکی از اصول اساسی شیگرایی است که به ما اجازه میدهد یک کلاس جدید را بر اساس یک کلاس موجود تعریف کنیم. این کار به ما امکان میدهد ویژگیها و رفتارهای موجود در کلاس پایه (پدر) را در کلاس جدید (فرزند) به ارث ببریم و از آنها استفاده کنیم.
مثالهایی برای درک بهتر وراثت
برای درک بهتر وراثت، چند مثال ساده ارائه میدهیم:
مثال اول: ویژگیهای ارثبرده شده از پدر و مادر
فرض کنید شما برخی ویژگیها از پدر و مادرتان به ارث بردهاید، مانند رنگ چشم یا مو. این ویژگیها در کلاس شما به عنوان فرزند وجود دارند اما ممکن است ویژگیهای خاص خودتان را نیز داشته باشید که مختص به خودتان است.
مثال دوم: رستورانهای زنجیرهای
فرض کنید یک رستوران زنجیرهای وجود دارد که شعبههای مختلفی دارد. منوی اصلی رستوران شامل 50 نوع غذا است، اما شعبههای مختلف ممکن است فقط تعداد محدودی از آن غذاها را ارائه دهند. هر شعبه میتواند ویژگیها و منوی خاص خود را داشته باشد، اما همچنان برخی ویژگیها را از منوی اصلی به ارث میبرد.
مثال سوم: بازیهای کامپیوتری
فرض کنید شما یک شخصیت در یک بازی کامپیوتری هستید که باید به هدف خاصی برسید و دشمنان (انمیها) تلاش میکنند تا جلوی شما را بگیرند. تمامی انمیها ویژگی مشترکی دارند که شما را از رسیدن به هدفتان باز میدارند، اما هر کدام از آنها ویژگیهای خاص خود را نیز دارند.
دو نکته مهم در وراثت
- جلوگیری از تکرار کد: با استفاده از وراثت، میتوانیم از نوشتن مکرر کد جلوگیری کنیم. کلاس فرزند میتواند ویژگیها و رفتارهای کلاس پدر را به ارث ببرد و نیازی به کپی کردن کدها در کلاس فرزند نیست.
- افزودن ویژگیهای خاص به کلاس فرزند: کلاس فرزند میتواند ویژگیها و رفتارهای خاص خود را داشته باشد که در کلاس پدر وجود ندارد.
مثال عملی وراثت در C++
حالا بیایید یک مثال عملی از وراثت در C++ ببینیم. فرض کنید یک کلاس Employee داریم که شامل ویژگیهایی مانند نام، شرکت و سن است. میخواهیم یک کلاس جدید به نام Developer ایجاد کنیم که از کلاس Employee ارث ببرد و یک ویژگی اضافی به نام زبان برنامهنویسی محبوب داشته باشد.
کد مثال:
#include
#include
using namespace std;
class Employee {
protected:
string name;
string company;
int age;
public:
Employee(string name, string company, int age)
: name(name), company(company), age(age) {}
string getName() const {
return name;
}
string getCompany() const {
return company;
}
int getAge() const {
return age;
}
};
class Developer : public Employee {
public:
string favoriteProgrammingLanguage;
Developer(string name, string company, int age, string favoriteProgrammingLanguage)
: Employee(name, company, age), favoriteProgrammingLanguage(favoriteProgrammingLanguage) {}
void debug() const {
cout << getName() << " is debugging using " << favoriteProgrammingLanguage << endl;
}
};
int main() {
Developer dev("Mehdi", "Tech Company", 25, "C++");
dev.debug();
return 0;
}
توضیحات کد:
- کلاس Employee شامل ویژگیهای نام، شرکت و سن است و دارای متدهایی برای دریافت این ویژگیها است.
- کلاس Developer از کلاس Employee ارث میبرد و یک ویژگی اضافی به نام زبان برنامهنویسی محبوب دارد.
- متد debug در کلاس Developer از ویژگیهای کلاس پدر استفاده میکند تا اطلاعاتی را چاپ کند.
منابع خارجی مرتبط با موضوع
نتیجهگیری
در این قسمت با مفهوم وراثت در C++ آشنا شدیم و فهمیدیم که چگونه میتوانیم ویژگیها و رفتارهای کلاسهای موجود را به کلاسهای جدید منتقل کنیم. این کار به ما کمک میکند تا از تکرار کد جلوگیری کنیم و کدهای خوانا و قابل نگهداریتری بنویسیم. وراثت یکی از اصول اساسی شیگرایی است که در توسعه نرمافزارهای بزرگ و پیچیده بسیار مفید است.
ادامه دوره (قسمت 78)
در قسمت بعدی به معرفی انتزاع (Abstraction) در شیگرایی خواهیم پرداخت. اگر سوالی دارید، در بخش دیدگاه مطرح کنید. همچنین ممنون میشم با حمایت دلنشینتون از من و دورهها حمایت کنید.
در این قسمت میخواهیم به یکی از اصلیترین اجزای برنامهنویسی شیءگرا یعنی کپسول سازی (Encapsulation) بپردازیم یک...
در این قسمت میخواهیم به جزء سوم اصلیترین اجزای برنامهنویسی شیءگرا یعنی انتزاع (Abstraction) بپردازیم یک...
بررسی وراثت (Inheritance) در شیگرایی
حق کپی ویدئو مجاز نمیباشد
قسمت:
جلسه هفتاد و هفت
نام دوره:
آموزش جامع ++C
زمان ویدئو:
20 دقیقه
مدرس:
مهدی کاظمی
در این قسمت یادخواهید گرفت:
در این قسمت از دوره آموزش برنامهنویسی C++، به یکی از مهمترین مفاهیم شیگرایی، یعنی وراثت (Inheritance) میپردازیم. در قسمت قبلی در رابطه با کپسولسازی (Encapsulation) صحبت کردیم. در این قسمت میخواهیم به توضیح مفاهیم وراثت بپردازیم که به ما کمک میکند تا از تکرار کد جلوگیری کنیم و قابلیتهای بیشتری به کلاسهای خود اضافه کنیم.
