2.3.2.1. זהות: שיוויון והשמה

קיימים שני סוגים של שוויון בין אובייקטים:

  • שיוויון התייחסויות: שתי התייחסויות אל אותו אובייקט בדיוק.
  • שוויון מצב: שני אובייקטים הנמצאים באותו מצב.

כמו כן, קיימים שני סוגים של השמה:

  • השמת התייחסות: משתנה ההתייחסות משוכפל. קיים בפועל רק אובייקט אחד. אחרי ההשמה, קיימים שני שמות המתייחסים אל אותו אובייקט.
  • השמה conventional: המצב של האובייקט מועתק. קיימים בסוף שני אובייקטים המכילים את אותו מצב.

השפות הקיימות תומכות רובן בשוויון והשמה משני הסוגים.

מאת: ניצן

Borland style vptr

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