มรดก C++
มรดก
ใน C ++ เป็นไปได้ที่จะสืบทอดแอตทริบิวต์และเมธอดจากคลาสหนึ่งไปยังอีกคลาสหนึ่ง เราจัดกลุ่ม "แนวคิดการสืบทอด" ออกเป็นสองประเภท:
- คลาสที่ได้รับ (ลูก) - คลาสที่สืบทอดมาจากคลาสอื่น
- คลาสฐาน (พาเรนต์) - คลาสที่สืบทอดมาจาก
หากต้องการสืบทอดจากคลาส ให้ใช้:
สัญลักษณ์
ในตัวอย่างด้านล่างCar
คลาส (ลูก) สืบทอดแอตทริบิวต์และเมธอดจากVehicle
คลาส (พาเรนต์):
ตัวอย่าง
// Base class
class Vehicle {
public:
string brand = "Ford";
void honk() {
cout << "Tuut, tuut! \n" ;
}
};
// Derived
class
class Car: public Vehicle {
public:
string model = "Mustang";
};
int main() {
Car myCar;
myCar.honk();
cout << myCar.brand + " " + myCar.model;
return 0;
}
ทำไมและเมื่อใดจึงควรใช้ "มรดก"?
- มีประโยชน์สำหรับการนำโค้ดกลับมาใช้ใหม่: ใช้แอตทริบิวต์และวิธีการของคลาสที่มีอยู่ซ้ำเมื่อคุณสร้างคลาสใหม่