איך מתרחשת אי בהירות בירושה מרובה?

תוכן עניינים:

איך מתרחשת אי בהירות בירושה מרובה?
איך מתרחשת אי בהירות בירושה מרובה?

וִידֵאוֹ: איך מתרחשת אי בהירות בירושה מרובה?

וִידֵאוֹ: איך מתרחשת אי בהירות בירושה מרובה?
וִידֵאוֹ: Multiple Inheritance in C++ with Ambiguity & Resolution | C++ programming for Beginners 2024, דֵצֶמבֶּר
Anonim

העמימות המתעוררת בעת שימוש בירושה מרובה מתייחסת ל- מחלקה נגזרת בעלת יותר ממחלקת אב אחת המגדירה נכס[ים] ו/או שיטה[ים] באותו שםלדוגמה, אם 'C' יורש גם מ-'A' וגם מ-'B' ומחלקות 'A' ו-'B', שניהם מגדירים מאפיין בשם x ופונקציה בשם getx.

מהי העמימות בירושה מרובה?

עמימות מגיעה בעיקר ב- ירושה מרובה לשתי מחלקות בסיס יש פונקציות עם אותו שם, בעוד שלמחלקה שנגזרת משתי מחלקות הבסיס אין פונקציה בשם זה. כאשר אנו קוראים לפונקציה עם האובייקט של המחלקה הנגזרת, המהדר לא יכול להבין לאיזו משתי הפונקציות הכוונה.

האם יש סיכוי לאי בהירות במושג הירושה המרובה?

אי-בהירות בירושה יכולה להיות מוגדרת ככאשר מחלקה אחת נגזרת עבור שתי מחלקות בסיס או יותר אז יש סיכויים שלמחלקות הבסיס יש פונקציות עם אותו שם. אז זה יבלבל מחלקה נגזרת לבחור מבין פונקציות שם דומות.

איזו אי בהירות מתעוררת בירושה מרובה וכיצד ניתן לפתור אותה?

אי בהירות יכולה להיווצר כאשר קיימים מספר נתיבים למחלקה מאותה מחלקה בסיס פירוש הדבר שלכיתה צאצא עשויות להיות קבוצות כפולות של איברים שעברו בירושה ממחלקת בסיס אחת. ניתן לפתור זאת באמצעות מחלקת בסיס וירטואלית. … מחלקה בסיס כזו ידועה כמחלקת בסיס וירטואלית.

מהי ירושה עמימות איך מתגברים להסביר עם דוגמה?

לדוגמה, נניח שלשתי מחלקות בשם A ו-B לשתיהן יש איבר בשם x, ומחלקה בשם C יורשת גם מ-A וגם מ-B.ניסיון לגשת ל-x מכיתה C יהיה מעורפל. אתה יכול לפתור אי בהירות על ידי הסמכת חבר עם שם המחלקה שלו באמצעותאופרטור רזולוציית ההיקף (::).

מוּמלָץ: