4.3.2.2. Ad Hoc Polymorphism מול Universal Polymorphism

Universal

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

Ad hoc

  • פולימורפיזם מעל מספר סופי של צורות – לרוב, מספר צורות בודדות.
  • צורות שונות של פולימורפיזם מקודדות באופן ידני – או פסדו-ידני.

אין בסיס משותף אחד לכל צורות הפולימורפיזם, מלבד זה שבכוונת המתכנת. צורות שונות יכולות להתנהג בצורה שונה.

מאת: ניצן

Borland style vptr

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