נושא: OOP (c++) virtual functions?
|
|
כותב |
|
guest אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 19 January 2006 בשעה 15:04 | | IP רשוּם
|
|
|
|
מה זה פונקציות וירטואליות, במה הם עוזרים לי ?
אני מדבר על c++
|
חזרה לתחילת העמוד |
|
|
Fate פורומיסט על
הצטרף / הצטרפה: 25 October 2005
משתמש: מנותק/ת הודעות: 571
|
נשלח בתאריך: 19 January 2006 בשעה 21:04 | | IP רשוּם
|
|
|
|
פונקציה וירטואלית זה פונקציה שאפשר לדרוס בהורשה, ולקרוא לה מהקלאס של הבסיס...
מה קוראים לזה פולימורפיזם... תמצא איפשהו לקרוא על זה :)
|
חזרה לתחילת העמוד |
|
|
אלצ'קו אחראי פורומים
ג2ר פ33תי
הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת הודעות: 609
|
נשלח בתאריך: 30 January 2006 בשעה 13:58 | | IP רשוּם
|
|
|
|
גוגל יעזור לך כאן. גם כל ספר על OO...
בגדול: פונקציות וירטואליות הן פונקציות שהכתובות אליהן נכתבות במקום
מיוחד(טבלת הפונקציות הרויטאליות - vtbl), והקריאה לפונקציה כזו מתפרשת
בזמן ריצה דרך הטבלה, ולא בזמן הקימפול.
לכן, יכול להיות שפונקציה בסגנון:
קוד:
void f(B* pB)
{
pB->foo();
} |
|
|
תקרא לפונקציה foo של מחלקת בת שתועבר אליה:
אם foo וירטואלית, תיקרא foo של מחלקת
הבת D. אם אינה וירטואלית - תיקרא הפונקציה של המחלקה B(כי זה מה שכתוב
בהצהרת הפונקציה, שמקבלים פויינטר ל-B).
בעקרון, אין שום סיבה שיהיו פונקציות לא וירטואליות, וכך זה ממומש בשפות
עיליות שלא צריכות לדאוג לתאימות עם שפות מיושנות ומציקות / שלא מפחדות על
כל מיליונית אחוז של ביצועים.
לרוב, תצטרך גם מפרקים וירטואליים(אם יש לך לפחות פונקציה וירטואלית אחת). ה-FAQ של ביורן מזכיר את הנושאים האלה.
קיצר, גוגל.
|
חזרה לתחילת העמוד |
|
|
|
|
אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם
|
אינך יכול/ה לשלוח נושאים חדשים בפורום זה אינך יכול/ה להגיב לנושאים בפורום זה אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה אינך יכול/ה לצור סקרים בפורום זה אינך יכול/ה להצביע בסקרים בפורום זה
|