3.3. ניהול מחלקות

למה צריך לנהל מחלקות?

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

אם מושג המחלקה הינו עצם, אז ניתן לקבל בזמן ריצה את המידע הדרוש.

מאת: ניצן

Borland style vptr

לפי מה שאני מכיר:
"חסרון בגישה זו: גם כאשר איננו משתמשים ב-dynamic binding – אנחנו משלמים במקום"
לא נכון , עבור מחלקה A שאין לה מתודות דינמיות לא יווצר כלל המצביע, ולמשל עבור מחלקה B שיורשת מA פשוט נוסיף בהתחלה את המצביע, ואחרי הבלוק של A את שאר האינפורמציה של B . וככה לא משלמים על מה שלא משתמשים ועקרונות C++ נשמרים.
מה שכן באמת הcasting קצת יותר מסובך....
שיתוף:
| עוד