3.3.2. Meta Classes

נתייחס אל כל העולם כאל עצמים.

חלק מהעצמים הינם עצמים שרק פועלים – הם אינם יכולים ליצור עצמים חדשים.

עצמים אחרים – מחלקות – אחראיים על קבוצת העצמים, יוצרים מחלקות.

חלוקה לקטגוריות:

  • מחלקה: אובייקט המייצר עצמים.
  • מטה-מחלקה (metaclass): מחלקה שהעצמים שהיא מייצרת הם מחלקות.
  • Terminal Instance: עצמים שמהם לא יוצרים עצמים נוספים.

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



רוב השפות יהיו עם בין 1-4 רמות, אולם באופן תיאורטי יכולים להיות plot:\[\infty \] רמות שונות.

מאת: ניצן

Borland style vptr

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