2.3.1. החלק הסטאטי של האובייקט
נפרט מעט יותר על המרכיבים הסטאטיים של
האובייקט.
מושגים בסיסיים:
- מאפיינים (Attributes): המקום בו מצב האובייקט נשמר. מכונים לעתים: שדות, מאפיינים,
תכונות, instance variables, data members.
- מבנה האובייקט (Structure): אוסף כל המאפיינים של האובייקט.
- מצב האובייקט: הערך הנוכחי של מאפייני האובייקט השונים.
סוגי מאפיינים:
- Immutable - מאפיינים סטאטיים -
מאפיינים שאינם ניתנים לשינוי.
- Mutable - מאפיינים דינמיים - מאפינים הניתנים לשינוי.
דוגמא:
class Person
{
// Immutable Attribute
const int IDNumber;
// Mutable Attribute
int Age;
};
סוגי הערכים שאובייקט יכול לשמור בתוכו:
- סקלרים:
שלמים, מספרים ממשיים, ערכים בוליאניים.
- מכולות:
מערכים, רשימות, עצים וכו'.
- אובייקטים אחרים.
Borland style vptr
לפי מה שאני מכיר:"חסרון בגישה זו: גם כאשר איננו משתמשים ב-dynamic binding – אנחנו משלמים במקום"
לא נכון , עבור מחלקה A שאין לה מתודות דינמיות לא יווצר כלל המצביע, ולמשל עבור מחלקה B שיורשת מA פשוט נוסיף בהתחלה את המצביע, ואחרי הבלוק של A את שאר האינפורמציה של B . וככה לא משלמים על מה שלא משתמשים ועקרונות C++ נשמרים.
מה שכן באמת הcasting קצת יותר מסובך....