3.1. מהי מחלקה

הפשטה מעל אובייקטים

קבוצת אובייקטים החולקת:

  • אספקטים דינאמיים: פרוטוקול והתנהגות.
  • אספקטים סטאטיים: מבנה האובייקט (אבל לא בהכרח את הערכים של השדות השונים).

תבניות ליצירת אובייקטים

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

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

אלמנטים שאינם מחלקות

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

כמו כן, לא כל קבוצת אובייקטים יכולה להיות מחלקה בודדת.

מאת: ניצן

Borland style vptr

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