פורסם 2011 באפריל 3014 שנים כשמתייחסים לכל מיני עצמים (שיורשים מאבא אחד) עם מצביע מטיפוס האבא , זה נקרא UPCASTING ? עדיין יש אפשרות לגשת לפונקציה שקיימת אצל בן מסוים שאין אותה לאבא ? או רק לפונ' הוירטואליות של האבא ואז זה יפעיל לי בעזרת VTBL את של הבן ?
פורסם 2011 באפריל 3014 שנים כשמתייחסים לכל מיני עצמים (שיורשים מאבא אחד) עם מצביע מטיפוס האבא , זה נקרא UPCASTING ? כן, בערך. upcasting זה פשוט המרה מהטיפוס של מצביע לבן למצביע לאב. אם יש לך קלאס בשם Base וקלאס בשם Derived שיורש ממנו, אז הפעולה הזו היא upcastDerived* p = ...;Base* q = p;עדיין יש אפשרות לגשת לפונקציה שקיימת אצל בן מסוים שאין אותה לאבא ? או רק לפונ' הוירטואליות של האבא ואז זה יפעיל לי בעזרת VTBL את של הבן ? סתם ככה אי אפשר (זה לא יתקמפל). אפשר באמצעות downcast (שזו בדיוק הפעולה הפוכה ל-upcast). בשביל להמיר באופן בטוח צריך להשתמש ב-dynamic_cast.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.