טבלה וירטואלית בOOP

voy12

New member
טבלה וירטואלית בOOP

מישהו יכול להסביר לי בקצרה מה זה בדיוק? אני לא מוצא את זה בספר=\
 

zagzagzag

New member
ב++C ?

זה כלי שבו קומפיילרים משתמשים בדר"כ על מנת לממש פולימורפיזם (virtual וכו'). פרטים נוספים בגוגל (באנגלית זה נקרא virtual table).
 

tseliot

New member
קומפיילרים?

אני לא מבין גדול אבל לפי דעתי V-TABLE נוצרת בזמן ריצה ולא בזמן בניה, לפיכך זה לא הקומפיילר שמשתמש בה...
 

galh

New member
הקומפלייר לא משתמש ב- vtable...

הוא מוסיף את המימוש שלה בקוד שהוא יוצר מקוד המקור של התוכנית שלך.
 

voy12

New member
בעע לא הבנתי כלום

והחיפוש בגוגל עלה בתוהו ז"א מצאתי מלא דברים שלא הבנתי מהם כלום (אנגלית נו... :)) אתם יכולים בבקשה לכתוב לי הסבר מה זה בדיוק?
 

yair24

Member
הסבר

ברגע שאתה מוסיף במחלקה מסוימת (להלן "מחלקת האב") לפני שם של פונקציה, את המילה VIRTUAL זה אומר שכל מחלקה שתירש מהמחלקה הזאת (להלן "המחלקה הנגזרת") ותהיה לה פונקציה עם אותו שם, אז אם תגדיר פוינטר של "מחלקת האב" אבל תתן לו להצביע על אובייקט מסוג ה"מחלקה הנגזרת", ואז תפעיל את הפונקציה הוירטואלית אז הפונקציה ששייכת לבן תופעל. המימוש של זה מתבצע בעזרת הVTABLE, והVTABLE נוצר, כמו שאמר גל על ידי הקומפיילר לפי הקוד שלך. אם אני לא טועה הפוינטר הזה הוא למעשה פוינטר לפונקציה וכל פעם הוא מפעיל את הפונקציה של המחלקה המתאימה. (אני לא בדיוק יודע איך זה בפועל עובד אולי מישהו יוכל לכתוב פה הסבר יותר מעמיק על זה) אני אתן דוגמא ואולי מישהו ימשיך את ההסבר:
class base { int data; virtual void show() } class derived : public base { void show() } void main { derived obj; base* ptr; ptr=&obj; ptr->show(); }​
הפונקציה SHOW שמופעלת פה תהיה זו של המחלקה DERIVED. יאיר
 

yair24

Member
תיקון

המשפט: "אם אני לא טועה הפוינטר הזה הוא למעשה פוינטר לפונקציה וכל פעם הוא מפעיל את הפונקציה של המחלקה המתאימה" צריך להיות כתוב ככה: "אם אני לא טועה המימוש של VTABLE מנצל פוינטר לפונקציה שכל פעם מצביע על הפונקציה המתאימה זאת אומרת שבכל מחלקה שיש בה את המילה VIRTUAL יש למעשה פוינטר ניסתר שלא רואים ששייך לVTABLE אפשר לראות את זה אם עושים SIZEOF למחלקה"
 

voy12

New member
פרוייקט גאמא

בטח יש כאן מתכנתים צעירים לא? מישהו היה שם בראיון? מה שואלים בערך? יש לי ראיון בקרוב ואני מנסה להתכונן...^_^
 

voy12

New member
אווו תודה לך :)

כמה טוב לקבל תחושה שיש מצב שאני עובר
 

voy12

New member
חחח לא לא... אני הבנתי :)

וגרמת לי לחייך... ההודעה הקודמת הייתה צינית לגמרי *.*
 

voy12

New member
הבחור שכתב את ההודעה ז"א

לא שמתי לב שזה שני אנשים שונים
 

amirjak

New member
אמממ

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