การสืบทอดหลายรายการเกิดขึ้นเมื่อคลาสสืบทอดจากคลาสฐานมากกว่าหนึ่งคลาส ดังนั้นคลาสจึงสามารถสืบทอดคุณสมบัติจากคลาสพื้นฐานหลายคลาสโดยใช้การสืบทอดหลายรายการ นี่เป็นคุณสมบัติที่สำคัญของภาษาการเขียนโปรแกรมเชิงวัตถุ เช่น C++
แผนภาพที่แสดงการสืบทอดหลายรายการได้รับด้านล่าง -
โปรแกรมที่จะใช้การสืบทอดหลายรายการใน C ++ ได้รับดังนี้ -
ตัวอย่าง
#include <iostream> using namespace std; class A { public: int a = 5; A() { cout << "Constructor for class A" << endl; } }; class B { public: int b = 10; B() { cout << "Constructor for class B" << endl; } }; class C: public A, public B { public: int c = 20; C() { cout << "Constructor for class C" << endl; cout<<"Class C inherits from class A and class B" << endl; } }; int main() { C obj; cout<<"a = "<< obj.a <<endl; cout<<"b = "<< obj.b <<endl; cout<<"c = "<< obj.c <<endl; return 0; }
ผลลัพธ์
ผลลัพธ์ของโปรแกรมข้างต้นมีดังต่อไปนี้ −
Constructor for class A Constructor for class B Constructor for class C Class C inherits from class A and class B a = 5 b = 10 c = 20
ในโปรแกรมข้างต้น มีการกำหนดคลาส A และ B ด้านล่างนี้ −
class A { public: int a = 5; A() { cout << "Constructor for class A" << endl; } }; class B { public: int b = 10; B() { cout << "Constructor for class B" < endl; } };
คลาส C สืบทอดมาจากทั้งคลาส A และ B ซึ่งเป็นตัวอย่างของการสืบทอดหลายรายการ คำจำกัดความของคลาส C แสดงอยู่ด้านล่าง -
class C: public A, public B { public: int c = 20; C() { cout << "Constructor for class C" << endl; cout<<"Class C inherits from class A and class B" << endl; } };
ในฟังก์ชัน main() จะมีการกำหนดวัตถุ obj ของคลาส C ตัวสร้างของคลาส A, B และ C จะถูกเรียกโดยอัตโนมัติและเนื้อหาจะแสดงขึ้น จากนั้นพิมพ์ค่า a, b และ c เหล่านี้เป็นสมาชิกข้อมูลของคลาส A, B และ C ตามลำดับ ข้อมูลโค้ดสำหรับสิ่งนี้มีดังนี้ −
C obj; cout<<"a = "<< obj.a <<endl; cout<<"b = "<< obj.b <<endl; cout<<"c = "<< obj.c <<endl;