Logo th.boatexistence.com

ความกำกวมเกิดขึ้นในมรดกหลายชุดได้อย่างไร

สารบัญ:

ความกำกวมเกิดขึ้นในมรดกหลายชุดได้อย่างไร
ความกำกวมเกิดขึ้นในมรดกหลายชุดได้อย่างไร
Anonim

ความกำกวมที่เกิดขึ้นเมื่อใช้การสืบทอดหลายรายการหมายถึง คลาสที่ได้รับซึ่งมีมากกว่าหนึ่งคลาสหลักที่กำหนดคุณสมบัติ[s] และ/หรือเมธอด[s] ที่มีชื่อเดียวกันตัวอย่างเช่น ถ้า 'C' สืบทอดจากทั้ง 'A' และ 'B' และคลาส 'A' และ 'B' ทั้งคู่จะกำหนดคุณสมบัติที่ชื่อ x และฟังก์ชันที่ชื่อ getx

ความกำกวมในการสืบทอดหลายรายการคืออะไร

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

มีโอกาสเกิดความกำกวมในแนวคิดการสืบทอดพหุคูณหรือไม่

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

ความกำกวมที่เกิดขึ้นในการสืบทอดหลายรายการคืออะไรและจะแก้ไขได้อย่างไร

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

มรดกความคลุมเครือคืออะไร คุณจะเอาชนะการอธิบายด้วยตัวอย่างได้อย่างไร

ตัวอย่างเช่น สมมติว่าทั้งสองคลาสชื่อ A และ B มีสมาชิกชื่อ x และคลาสที่ชื่อ C สืบทอดมาจากทั้ง A และ Bความพยายามในการเข้าถึง x จากคลาส C จะคลุมเครือ คุณสามารถแก้ไขความกำกวมได้โดย คัดเลือกสมาชิกที่มีชื่อคลาสโดยใช้ ตัวดำเนินการแก้ไขขอบเขต (::)