C++ Multiple Inheritance
در ++C میتونیم یک کلاس رو طوری تعریف کنیم که از چند کلاس پایه بهصورت همزمان ارثبری کنه. این ساختار رو Multiple Inheritance میگیم.
🔹 تعریف کلی
یعنی یک کلاس میتونه ویژگیها و توابع چند کلاس مختلف رو به ارث ببره:
کلاس C
همزمان از A
و B
ارث میبره.
🔹 نمونه کد ساده
📌 خروجی:
🔹 ترتیب سازندهها در Multiple Inheritance
اول سازندهی کلاسی که زودتر در لیست ارثبری آمده، اجرا میشه:
📌 خروجی:
🔹 مشکل رایج: Diamond Problem
اگر دو کلاس پایه خودشون از یک کلاس سوم ارثبری کرده باشن، و کلاس مشتق از هر دوی اونها ارثبری کنه، ویژگیهای کلاس سوم دوبار به ارث میرسه و ابهام ایجاد میشه:
راهحل: استفاده از virtual inheritance.
🔹 حل مشکل با virtual inheritance
📌 خروجی:
✅ نکات مهم
-
Multiple Inheritance قدرت بالایی برای ترکیب ویژگیهای مختلف میده.
-
برای جلوگیری از تداخل نام، میشه نام کلاس رو بهصورت صریح نوشت:
-
وقتی چند کلاس پایه یکسان دارن، حتماً از virtual inheritance استفاده کنید تا Diamond Problem پیش نیاد.