5.3.2. Conformance and Overridingאם נסכם, נאמר כי הודות ל-dynamic binding וכן לתכונת הפולימורפיזם, המשתמש לא יכול לדעת מראש איזו גירסה של מתודה וירטואלית תקרא בפועל כאשר הוא משתמש בה. כתוצאה מכך מתעורר הצורך בתאימות. התאימות צריכה להתבטא במספר מישורים:
"Same or better" Principle - פונקציה חופפת חייבת לספק לפחות את אותה פונקציונליות כמו הפונקציה הנחפפת. לפונקציה החופפת אסור להפתיע את המשתמש. |
תוכן העניינים:
קישורים רלוונטיים:שיתוף: |
Borland style vptr
לפי מה שאני מכיר:"חסרון בגישה זו: גם כאשר איננו משתמשים ב-dynamic binding – אנחנו משלמים במקום"
לא נכון , עבור מחלקה A שאין לה מתודות דינמיות לא יווצר כלל המצביע, ולמשל עבור מחלקה B שיורשת מA פשוט נוסיף בהתחלה את המצביע, ואחרי הבלוק של A את שאר האינפורמציה של B . וככה לא משלמים על מה שלא משתמשים ועקרונות C++ נשמרים.
מה שכן באמת הcasting קצת יותר מסובך....