ارث بری چندگانه (Multiple Inheritance)
ارث بری چندگانه یعنی یک کلاس از چند والد ارث ببرد. بنابراین کلاس فرزند، قابلیت های دو یا چند کلاس را باهم می گیرد. مثل دانش آموزی که هم از معلم ریاضی یاد می گیرد، هم از معلم ورزش.
تعریف ساده ارث بری چندگانه
وقتی کلاس فرزند بعد از دونقطه، چند والد را با ویرگول فهرست می کند، از همه آن ها ویژگی و متد می گیرد. این کار تکرار کد را کم می کند؛ اما دقت بیشتری می خواهد.
نمونه منبع W3Schools
// Base class
class MyClass {
public:
void myFunction() {
cout << "Some content in parent class.";
}
};
// Another base class
class MyOtherClass {
public:
void myOtherFunction() {
cout << "Some content in another class.";
}
};
// Derived class
class MyChildClass: public MyClass, public MyOtherClass {
};
int main() {
MyChildClass myObj;
myObj.myFunction();
myObj.myOtherFunction();
return 0;
}
نکته: فرزند هم myFunction() و هم myOtherFunction() را دارد؛ چون از هر دو والد گرفته است.
کی استفاده کنیم؟
- وقتی کلاس باید چند نقش داشته باشد.
- وقتی می خواهیم تکرار کد کمتر شود.
هشدار: اگر والدها متدهای همنام داشته باشند، گیج کننده می شود. پس طراحی را ساده نگه دار.
سه گام عملی
- دو کلاس والد با متدهای جدا بساز.
- کلاس فرزند را با
class C: public A, public Bتعریف کن. - شیء بساز و متدهای هر دو والد را صدا بزن.
برای پایه ها، صفحه ارث بری را ببین. همچنین مقایسه با ارث بری چندسطحی کمک می کند. راهنمای ارث بری چندگانه همین صفحه است.
جمع بندی سریع
- ارث بری چندگانه، چند والد دارد.
- تکرار کد را کم می کند.
- طراحی ساده نگه دار.
- نام های تکراری دردسرسازند.