آموزش مقدماتی C++ | وراثت
خطای دسترسی
برای ثبت پاسخ، ابتدا باید در سایت وارد شوید.
وراثت در کلاس ها
فرض کنید می خواهیم یک سایت فروشگاهی را برنامه نویسی کنیم که دو نوع محصول فیزیکی و دانلودی دارد. هر دوی این محصولات ویژگی هایی مثل نام، توضیحات، دسته بندی، قیمت عادی، قیمت ویژه، تصویر و … دارند. اما هر کدام نیز جداگانه ویژگی هایی دارند که مختص به خودشان است. مثلاً محصول فیزیکی ویژگی هایی مثل وزن، ابعاد، هزینه ارسال و … دارد، در حالیکه محصول دانلودی ویژگی هایی مثل حجم فایل، نوع محتوا، لینک دانلود و … دارد.
یک راه حل خوب برای مدیریت اطلاعات چنین داده هایی این است که یک کلاس کلی مربوط به کل محصولات داشته باشیم که ویژگی ها و متد های مشترک را در خود جای می دهد. و به طور جداگانه برای هر نوع محصول کلاسی داشته باشیم که اولاً ویژگی های کلاس اول را به ارث ببرد و ثانیاً ویژگی ها و متد های خود را نیز داشته باشد. برای این منظور از مفهومی به نام وراثت در کلاس ها استفاده می کنیم.
ر برنامه نویسی شیء گرا، می توانیم برای هر کلاس، کلاس های فرزندی تعریف کنیم که تمام متد ها و ویژگی های کلاس مادر را به ارث می برند. مفهوم وراثت را به دو دسته بندی تقسیم می کنیم:
- کلاس برگرفته شده یا کلاس فرزند – کلاسی که از کلاس دیگر ارث می برد
- کلاس پایه یا کلاس مادر – کلاسی که از آن ارث برده شده است
برای ارث بری از یک کلاس از علامت : استفاده می کنیم.
در مثال زیر کلاس Car (فرزند) همه ی ویژگی ها و متد های کلاس Vehicle (مادر) را به ارث می برد:
// کلاس مادر
class Vehicle {
public:
string brand = "Ford";
void honk() {
cout << "Tuut, tuut! \n" ;
}
};
// کلاس فرزند
class Car: public Vehicle {
public:
string model = "Mustang";
};
int main() {
Car myCar;
myCar.honk();
cout << myCar.brand + " " + myCar.model;
return 0;
}
برای ثبت پرسش ابتدا در سایت وارد شوید.