אם אפשר עוד שאלה בנוגע לירושה?

0 views
Skip to first unread message

elran_kalily

unread,
Feb 18, 2012, 12:53:30 PM2/18/12
to 83-223
הי מתן
אם אוכל לשאול לגבי המקרה הבא:

נניח יש לי את המקרה הבא:

class a
{
public:
virutal k(){}
};
class b:public a
{

}
class c:public b
{
public:
virutal k(){}
}

b* bTOc=new c();
b->k()
מוביל אותי לנכד
C
?

Matan Keidar

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

בהצלחה
מתן

2012/2/18 elran_kalily <elran....@gmail.com>
Reply all
Reply to author
Forward
0 new messages