ירושה וירטואלית

15 views
Skip to first unread message

elran_kalily

unread,
Feb 18, 2012, 11:19:37 AM2/18/12
to 83-223
שבוע טוב למתן
ולכולם
ברצוני לשאול לגבי עניין הירושה הוירטואלית
במצגת של תרגול 8 שקף 25 ניתן לראות שאם איננו שולחים פרמטרים דרך
הקונסטרקטורים
B
יוצר את
A
ובמבחן של יהודה 2010 מועד א
שאלה 6 התוכנית לא עוברת קומפילציה עקב כך שאנו שולחים פרמטר ל
A
דרך 2 בנים
האם כך פני הדברים?

בתודה אלרן

tal maayan

unread,
Feb 18, 2012, 12:32:58 PM2/18/12
to 83-223
אלרן לא הבנתי את השאלה אותך, אתה יכול להפנות אותי בבקשה למבחן ממנו
לקחת את השאלה?

Matan Keidar

unread,
Feb 18, 2012, 12:44:09 PM2/18/12
to 83-...@googlegroups.com
במקרה המתואר במבחן לכל המחלקות יש אב משותף, A כולן יורשות אותו בצורה וירטואלית.
המחלקה D חייבת לקרוא לבנאי של A באופן מפורש, אחרת בעת יצירת המחלקות B,C תהיה בעיה כי גם הן יוצרות את A.
ההבדל בין המקרה הנ"ל לבין מצגת התרגול הוא שבמצגת התרגול הבנאים לא מקבלים פרמטרים ואין את הבעיה הזו.

מתן

2012/2/18 tal maayan <talma...@gmail.com>

elran_kalily

unread,
Feb 18, 2012, 12:48:17 PM2/18/12
to 83-223
OOP_A2010 -sol.doc

> > בתודה אלרן- Hide quoted text -
>
> - Show quoted text -

elran_kalily

unread,
Feb 18, 2012, 12:48:59 PM2/18/12
to 83-223
אז כמו שרציתי לדעת הפרמטרים הם ההבדל המהותי כאן?

On Feb 18, 7:44 pm, Matan Keidar <matan...@gmail.com> wrote:
> במקרה המתואר במבחן לכל המחלקות יש אב משותף, A כולן יורשות אותו בצורה
> וירטואלית.
> המחלקה D חייבת לקרוא לבנאי של A באופן מפורש, אחרת בעת יצירת המחלקות B,C
> תהיה בעיה כי גם הן יוצרות את A.
> ההבדל בין המקרה הנ"ל לבין מצגת התרגול הוא שבמצגת התרגול הבנאים לא מקבלים
> פרמטרים ואין את הבעיה הזו.
>
> מתן
>

> 2012/2/18 tal maayan <talmaay...@gmail.com>


>
>
>
> > אלרן לא הבנתי את השאלה אותך, אתה יכול להפנות אותי בבקשה למבחן ממנו
> > לקחת את השאלה?
>
> > On Feb 18, 6:19 pm, elran_kalily <elran.kal...@gmail.com> wrote:
> > > שבוע טוב למתן
> > >  ולכולם
> > > ברצוני לשאול לגבי עניין הירושה הוירטואלית
> > > במצגת של תרגול 8 שקף 25 ניתן לראות שאם איננו שולחים פרמטרים דרך
> > > הקונסטרקטורים
> > > B
> > > יוצר את
> > > A
> > > ובמבחן של יהודה 2010 מועד א
> > > שאלה 6 התוכנית לא עוברת קומפילציה עקב כך שאנו שולחים פרמטר ל
> > > A
> > > דרך 2 בנים
> > > האם כך פני הדברים?
>

tal maayan

unread,
Feb 18, 2012, 1:02:56 PM2/18/12
to 83-...@googlegroups.com
במצגת התרגול הירושה של 
B
היא לא וירטואלית
אם נפעיל פונקציה של 
B
מתוך 
E
זה לא ייצור בעיה כי הוא לא ידע באיזה מסלול ללכת?

אני חושבת שבתרגול יש את הבעיה הזו
מבחינת הבנייה של 
E
אין בעיה כי הוא יוצר את 
B
פעמיים. פעם אחת עבור C
ופעם שנייה עבור D
אבל כמו שרואים באוטפוט הבנאי של 
B
נקרא פעמיים

2012/2/18 elran_kalily <elran....@gmail.com>

Matan Keidar

unread,
Feb 18, 2012, 1:38:10 PM2/18/12
to 83-...@googlegroups.com
במצגת התרגול לא קיימות מתודות למחלקות חוץ מהבנאים.
אם הייתה מתודה שנמצאת בתוך B, אזי היה צריך מתוך מחלקה E להגיד במפורש לאיזה אבא קוראים.
אם הייתה מתודה מתוך A אזי זה היה בסדר כי B יורש אותו וירטואלית.

2012/2/18 tal maayan <talma...@gmail.com>

itai druker

unread,
Feb 18, 2012, 4:18:28 PM2/18/12
to 83-223
קראתי במאמר:
The thing you as a programmer need to know is this: constructors for
virtual base classes anywhere in your class's inheritance hierarchy
are called by the "most derived" class's constructor

זאת אומרת שבמקרה של מבחן 2010 שראית שם
הקונסטרקטור של מחלקה שיורשים אותה בצורה וירטואלית צריך להיקרא מהמחלקה
הכי תחתונה בעץ הירושה
במקרה שלנו D ולכן זה לא מתקמפל

On 18 פברואר, 20:38, Matan Keidar <matan...@gmail.com> wrote:
> במצגת התרגול לא קיימות מתודות למחלקות חוץ מהבנאים.
> אם הייתה מתודה שנמצאת בתוך B, אזי היה צריך מתוך מחלקה E להגיד במפורש לאיזה
> אבא קוראים.
> אם הייתה מתודה מתוך A אזי זה היה בסדר כי B יורש אותו וירטואלית.
>

> 2012/2/18 tal maayan <talmaay...@gmail.com>


>
>
>
> > במצגת התרגול הירושה של
> > B
> > היא לא וירטואלית
> > אם נפעיל פונקציה של
> > B
> > מתוך
> > E
> > זה לא ייצור בעיה כי הוא לא ידע באיזה מסלול ללכת?
>
> > אני חושבת שבתרגול יש את הבעיה הזו
> > מבחינת הבנייה של
> > E
> > אין בעיה כי הוא יוצר את
> > B
> > פעמיים. פעם אחת עבור C
> > ופעם שנייה עבור D
> > אבל כמו שרואים באוטפוט הבנאי של
> > B
> > נקרא פעמיים
>

> > 2012/2/18 elran_kalily <elran.kal...@gmail.com>

> >> > - Show quoted text --הסתר טקסט מצוטט-
>
> -הראה טקסט מצוטט-

Reply all
Reply to author
Forward
0 new messages