3.3.2.3. The 3 Level Systemבמודל 3 רמות מחלקה הינה גם עצם. קיימת מחלקה class שהיא meta class – משמשת לתיאור ויצירת מחלקות. כל המחלקות הינן עצמים מסוג class. במודל 3 רמות ניתן לתת פקודה למחלקה class כדי שתיצור מחלקה חדשה (במודל 2 רמות לא ניתן לעשות זאת). למבנה 3 רמות יש חסרון שלא קיים ב-2 רמות: static functions, static members לא משתלבים במודל זה. אם מחלקה צריכה להכיל פונקציה סטטית, עובדה זו צריכה להופיע בתיאור המחלקה, אולם המחלקה class לא יכולה לתאר אבחנה זו כי היא אחראית לתאר את כל המחלקות (נשים לב שכל מחלקה היא instance של המחלקה class, ולא מחלקה נורשת ממנה!). במחלקה class מופיע מה צריך להיות בכל מחלקה. במודל 3 רמות:
|
תוכן העניינים:
קישורים רלוונטיים:שיתוף: |
Borland style vptr
לפי מה שאני מכיר:"חסרון בגישה זו: גם כאשר איננו משתמשים ב-dynamic binding – אנחנו משלמים במקום"
לא נכון , עבור מחלקה A שאין לה מתודות דינמיות לא יווצר כלל המצביע, ולמשל עבור מחלקה B שיורשת מA פשוט נוסיף בהתחלה את המצביע, ואחרי הבלוק של A את שאר האינפורמציה של B . וככה לא משלמים על מה שלא משתמשים ועקרונות C++ נשמרים.
מה שכן באמת הcasting קצת יותר מסובך....