15-01-2014, 11:26
|
|
|
|
חבר מתאריך: 16.07.02
הודעות: 6,814
|
|
הורשה C++
הקוד שלהלן הוא בעצם שאלה בה הנך נדרש להשלים את החסר(המסומן באדום הוא הפתרון של המרצה)
כשאני מנסה לקמפל את זה(GCC) אני מקבל שגיאה:
error: ‘A’ is an ambiguous base of ‘D’
השגיאה מתייחסת לשורה D->A::f
האם זו טעות של המרצה? על פניו זה נראה שאמור להיות ברור לקומפיילר איזה פונקצייה מדובר.
נ.ב
ללא השורה הבעייתית הקוד עובר קומפילציה. כמו כן, גם נסיון לשנות את ההורשה של B או C לvirtual לא צלח.
_____________________________________
|