שאלה לגבי משתנה הפנייה וירושה

1 view
Skip to first unread message

itai druker

unread,
Feb 16, 2012, 9:51:23 AM2/16/12
to 83-223
שלום מתן,
במקרה שיש לי מחלקה A
B היורשת מ-A

אם אני יוצר את האובייקט הבא:
B b1;
ושולח אותו לפונקציה
func(A& a);
מה בדיוק קורה פה? הוא בעצם יתייחס לחלק ה-A שבתוך האובייקט B?
אם יש ל-2 המחלקות האלה פונקציית הדפסה, איזו פונקציית הדפסה תיקרא אם
אני ירשום בתוך הפונקציה הנ"ל:
a.print()
תודה

itai druker

unread,
Feb 16, 2012, 10:12:38 AM2/16/12
to 83-223
שאלה נוספת,
שאלה של const vs inheritence
מצביע מטיפוס A שמצביע לאובייקט מטיפוס B
קורא לפונקציית print כאשר היא מועמסת:
void print ()
virtual void print const
האם הוא יבחר בפונקציה הוירטואלית, שהיא מוגדרת כ-const וירד לטיפוס B
כדי להשתמש בפונקציה שלו
או שפשוט יבחר בפונקציה הרגילה

Matan Keidar

unread,
Feb 16, 2012, 10:55:00 AM2/16/12
to 83-...@googlegroups.com
 איתי (וכולם):
קל מאד למצוא את התשובות לשאלות כמו אלה.
ניתן לכתוב קוד ולבדוק את התשובה.
ספציפית לגבי השאלה השניה, לא מובן לי איזו מחלקה מכילה איזו מתודה. על פי מה שאני מבין מהכתוב, לא אמורה להיות התלבטות כאן.

מתן

2012/2/16 itai druker <druk...@gmail.com>

itai druker

unread,
Feb 16, 2012, 12:47:22 PM2/16/12
to 83-223
אוקיי מתן אז שאלה כללית
האם בכל הנוגע לפולימורפיזם
כל הכללים של מצביעים תופסים גם לגבי
reference?
זאת אומרת שמבחינתי
A* a= &b;
A& a=b;
הם שורות שקולות מבחינת הפולימורפיזם?
תודה

On Feb 16, 5:55 pm, Matan Keidar <matan...@gmail.com> wrote:
>  איתי (וכולם):
> קל מאד למצוא את התשובות לשאלות כמו אלה.
> ניתן לכתוב קוד ולבדוק את התשובה.
> ספציפית לגבי השאלה השניה, לא מובן לי איזו מחלקה מכילה איזו מתודה. על פי מה
> שאני מבין מהכתוב, לא אמורה להיות התלבטות כאן.
>
> מתן
>

> 2012/2/16 itai druker <druke...@gmail.com>

Matan Keidar

unread,
Feb 16, 2012, 4:03:15 PM2/16/12
to 83-...@googlegroups.com
אכן,
אם אתה עובד עם רפרנס או מצביע וקורא לפונקציה וירטואלית, אתה עובד עם הגירסה של הבן.

מתן

2012/2/16 itai druker <druk...@gmail.com>
אוקיי מתן אז שאלה כללית
Reply all
Reply to author
Forward
0 new messages