วีดีโอ: คลาสที่ได้รับสืบทอดคอนสตรัคเตอร์หรือไม่?
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
ใน มรดก , NS สืบทอดคลาสที่ได้รับ สมาชิกทั้งหมด (ฟิลด์, เมธอด) ของฐาน ระดับ , แต่ คลาสที่ได้รับ ไม่ได้ สืบทอด NS ตัวสร้าง ของฐาน ระดับ เพราะ ตัวสร้าง ไม่ใช่สมาชิกของ ระดับ.
ในทำนองเดียวกัน ผู้คนถามว่าคลาสสืบทอดคอนสตรัคเตอร์หรือไม่?
ตัวสร้าง ไม่ใช่ ได้รับการถ่ายทอด . เด็กถูกเรียกโดยนัยหรือโดยชัดแจ้ง ตัวสร้าง . คอมไพเลอร์สร้างค่าเริ่มต้น ตัวสร้าง (อันที่ไม่มีข้อโต้แย้ง) และสำเนาเริ่มต้น ตัวสร้าง (อันหนึ่งมีอาร์กิวเมนต์ที่อ้างอิงถึงชนิดเดียวกัน) อัปเดต: ใน C ++ 11 ตัวสร้าง เป็นไปได้ ได้รับการถ่ายทอด.
นอกจากนี้ Constructor ในคลาสที่ได้รับคืออะไร? NS ตัวสร้างคลาสที่ได้รับ เข้าถึงได้เฉพาะของตัวเอง ระดับ สมาชิก แต่ a คลาสที่ได้รับ วัตถุก็มี ได้รับการถ่ายทอด คุณสมบัติของเบส ระดับ และฐานเท่านั้น ตัวสร้างคลาส สามารถเริ่มต้นฐานได้อย่างเหมาะสม ระดับ สมาชิก. ดังนั้นทั้งหมด ตัวสร้าง ถูกเรียก มิฉะนั้น วัตถุจะไม่ถูกสร้างขึ้นอย่างถูกต้อง
นอกจากนี้ คอนสตรัคเตอร์และตัวทำลายสามารถสืบทอดได้หรือไม่?
คลาสที่ได้รับ ทำ ไม่ สืบทอด หรือโอเวอร์โหลด ตัวสร้าง หรือ ผู้ทำลายล้าง จากคลาสพื้นฐานของพวกเขา แต่พวกเขา ทำ โทรหา ตัวสร้างและตัวทำลาย ของคลาสพื้นฐาน ตัวสร้าง เรียกอีกอย่างว่าเมื่อมีการสร้างวัตถุคลาสท้องถิ่นหรือชั่วคราวและ ผู้ทำลายล้าง ถูกเรียกเมื่ออ็อบเจ็กต์ในเครื่องหรืออ็อบเจ็กต์ชั่วคราวอยู่นอกขอบเขต
ตัวสร้างใดที่เรียกว่าเป็นอันดับแรกในการสืบทอด
ตัวสร้าง และตัวทำลายล้างในซิงเกิ้ล มรดก ชั้นฐาน ตัวสร้าง เป็น เรียกก่อน และคลาสที่ได้รับ ตัวสร้าง เป็น เรียกว่า ต่อไปในซิงเกิ้ล มรดก.