ตัวสร้างการสืบทอดใน C ++ คืออะไร

Taw Srang Kar Subthxd Ni C Khux Xari



ใน C ++ มรดก เป็นแนวคิดหลักในการเขียนโปรแกรมเชิงวัตถุ คลาสที่ได้รับมาสามารถสืบทอดลักษณะและพฤติกรรมของคลาสพื้นฐานได้ด้วยพลังอันทรงพลัง มรดก ความสามารถในภาษา C++ คลาสที่ได้รับสืบทอดสมาชิกของคลาสพื้นฐานทั้งหมดทันทีเมื่อมันถูกสร้างขึ้น จำเป็นสำหรับตัวสร้างคลาสที่ได้รับเพื่อเริ่มต้นสมาชิกคลาสพื้นฐานเช่นกัน ใน C ++ มรดก เป็นคุณสมบัติอันทรงพลังที่ช่วยให้นักพัฒนาสามารถนำโค้ดกลับมาใช้ใหม่ ปรับปรุงประสิทธิภาพ และจัดระเบียบโค้ดเป็นลำดับชั้นเชิงตรรกะ

นอกจากการสืบทอดแล้ว ตัวสร้างยังมีความจำเป็นใน C++ ก ตัวสร้าง เป็นฟังก์ชันสมาชิกเฉพาะที่ให้คุณเริ่มต้นคุณสมบัติของวัตถุได้ หนึ่ง ตัวสร้างการสืบทอด เป็นตัวสร้างที่ใช้ในการเริ่มต้นทั้งคลาสฐานและวัตถุคลาสที่ได้รับซึ่งคลาสที่ได้รับสืบทอดมา เดอะ ตัวสร้างการสืบทอด มีหน้าที่รับผิดชอบในการเริ่มต้นทั้งสมาชิกคลาสพื้นฐานที่สืบทอดมาและสมาชิกคลาสที่ได้รับมา เพื่อให้บรรลุเป้าหมายนี้ ตัวสร้างจะเรียกใช้ตัวสร้างของคลาสพื้นฐาน เพื่อให้แน่ใจว่าสมาชิกทั้งหมดของคลาสที่ได้รับมาได้รับการเริ่มต้นอย่างเหมาะสม รวมถึงสมาชิกที่สืบทอดมาจากคลาสพื้นฐาน

โดยการเรียกใช้ตัวสร้างของคลาสฐานและส่งผ่านพารามิเตอร์ที่จำเป็น ตัวสร้างการสืบทอด เริ่มต้นสมาชิกของคลาสฐาน สิ่งนี้ทำได้โดยใช้ 'คลาสพื้นฐาน (args)' รายการเริ่มต้นในตัวสร้าง คำแนะนำเพิ่มเติมเฉพาะสำหรับคลาสที่ได้รับมีอยู่ในเนื้อหาคอนสตรัคเตอร์







ไวยากรณ์สำหรับ มรดก คลาสใน C ++ คือ:



ระดับ คลาสที่ได้รับมา : accessSpecifier BaseClass {
// สมาชิกในชั้นเรียน
} ;

คลาสใหม่ที่เกิดขึ้นในกรณีนี้ “คลาสที่ได้รับมา”, จะได้รับมรดกจาก “เบสคลาส”. ระดับของการเข้าถึงสมาชิกที่สืบทอดจะระบุโดย ' accessSpecifier” C++ ใช้ตัวระบุการเข้าถึงสามประเภท ได้แก่ “สาธารณะ”, “ส่วนตัว”, และ 'มีการป้องกัน' . คำ 'สาธารณะ' บ่งชี้ว่าคลาสที่ได้รับมีสิทธิ์เข้าถึงสมาชิกสาธารณะของคลาสพื้นฐาน คลาสที่ได้รับไม่สามารถเข้าถึงสมาชิกของคลาสพื้นฐานได้ ตาม 'ส่วนตัว' ตัวระบุ คลาสที่ได้รับมีสิทธิ์เข้าถึงสมาชิกคลาสพื้นฐานที่ได้รับการป้องกันซึ่งสามารถสืบทอดโดยคลาสลูกได้ ตามข้อมูลของ 'มีการป้องกัน' ตัวระบุ



ตัวอย่างการสืบทอดใน C ++

ตัวอย่างต่อไปนี้แสดงการดำเนินการของ มรดก ใน C ++:





#รวมถึง
โดยใช้ เนมสเปซ มาตรฐาน ;

ระดับ สัตว์ {
สาธารณะ :
เป็นโมฆะ กิน ( ) {
ศาล << 'ฉันกินได้!' << จบ ;
}
เป็นโมฆะ นอน ( ) {
ศาล << 'ฉันนอนได้!' << จบ ;
}
} ;
ระดับ แมว : สาธารณะ สัตว์ {
สาธารณะ :
เป็นโมฆะ เหมียว ( ) {
ศาล << 'เมี้ยวได้!' << จบ ;
}
} ;
นานาชาติ หลัก ( ) {
แมวแมว1 ;
แมว1. กิน ( ) ;
แมว1. นอน ( ) ;
แมว1. เหมียว ( ) ;

กลับ 0 ;
}

รหัสที่กำหนดกำหนดสองคลาส 'สัตว์' และ 'แมว' , ที่ไหน 'แมว' มีที่มาจาก 'สัตว์' . ทั้งสองคลาสมีฟังก์ชันสมาชิกบางอย่าง เช่น 'กินนอน' , และ 'เหมียว' . ฟังก์ชั่นหลักสร้างวัตถุของชั้นเรียน 'แมว' และโทร รับการถ่ายทอด ฟังก์ชั่นจากชั้นเรียน 'สัตว์' ตลอดจนหน้าที่เฉพาะของคลาส 'แมว' , ซึ่งเป็น 'เหมียว' . โปรแกรมจะส่งข้อความไปยังคอนโซล ระบุว่าแมวสามารถกิน นอน และร้องเหมียวได้

เอาต์พุต



เมื่อได้รับคลาสมา ตัวแปรสมาชิกของคลาสพื้นฐานและฟังก์ชันสมาชิกทั้งหมดจะถูกถ่ายโอนไปยังคลาสที่ได้รับ เดอะ รับการถ่ายทอด การเข้าถึงของสมาชิกในคลาสที่ได้รับถูกกำหนดโดยตัวระบุการเข้าถึง คลาสที่ได้รับอาจแทนที่คุณสมบัติใหม่สำหรับสิ่งที่มีอยู่แล้ว สามารถเพิ่มการใช้งานใหม่สำหรับเมธอดของคลาสพื้นฐาน และเพิ่มฟังก์ชันสมาชิกและตัวแปรใหม่

สิ่งสำคัญคือต้องจำไว้ว่า ตัวสร้างการสืบทอด ต้องใช้เพื่อเรียกคอนสตรัคเตอร์ของคลาสฐานอย่างชัดเจนด้วยพารามิเตอร์ที่จำเป็น หากคลาสพื้นฐานมีคอนสตรัคเตอร์เริ่มต้นหรือหากไม่พร้อมใช้งาน

บทสรุป

คุณสมบัติที่แข็งแกร่งของ มรดก ใน C ++ อนุญาตให้คลาสใช้รหัสซ้ำโดยสืบทอดลักษณะและการกระทำจากสิ่งอื่น คุณสมบัติที่มีประโยชน์ของ C ++ ตัวสร้างการสืบทอด อนุญาตให้คลาสที่ได้รับมาสืบทอดคุณสมบัติ เมธอด และสมาชิกข้อมูลของคลาสพื้นฐาน ด้วยการเพิ่มรายการเริ่มต้นสำหรับคอนสตรัคเตอร์คลาสพื้นฐาน มันถูกกำหนดโดยใช้ไวยากรณ์เดียวกันกับคอนสตรัคเตอร์มาตรฐาน โปรแกรมเมอร์ C++ สามารถลดการทำซ้ำโค้ดและปรับปรุงโครงสร้างโค้ดได้โดยใช้ ตัวสร้างการสืบทอด . สำหรับการสร้างลำดับชั้นของคลาสที่ซับซ้อนในการเขียนโปรแกรมเชิงวัตถุ เครื่องมือนี้เป็นเครื่องมือที่สำคัญ