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