מה ההבדל בין פונקציה וירטואלית לעקיפה של פונקציה?
מה ההבדל בין פונקציה וירטואלית לעקיפה של פונקציה?

וִידֵאוֹ: מה ההבדל בין פונקציה וירטואלית לעקיפה של פונקציה?

וִידֵאוֹ: מה ההבדל בין פונקציה וירטואלית לעקיפה של פונקציה?
וִידֵאוֹ: מה ההבדל בין התאבכות וסופרפוזיציה ? 2024, מאי
Anonim

פונקציות וירטואליות לא יכול להיות סטטי וגם לא יכול להיות חבר פוּנקצִיָה של כיתה אחרת. הם תמיד מוגדרים במחלקת הבסיס ו נדחק בכיתה נגזרת. זה לא חובה עבור כיתה נגזרת לעקוף (או הגדר מחדש את פונקציה וירטואלית ), במקרה זה גרסת מחלקת הבסיס של פוּנקצִיָה משמש.

יתר על כן, מה ההבדל בין פונקציה וירטואלית לפונקציה וירטואלית טהורה?

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

לאחר מכן, השאלה היא, מהי עקיפת פונקציות ב-C++? עקיפת פונקציות C++ . אם מחלקה נגזרת מגדירה אותו דבר פוּנקצִיָה כפי שמוגדר במחלקה הבסיסית שלו, הוא ידוע בשם עוקף פונקציה ב-C++. הוא משמש להשגת פולימורפיזם בזמן ריצה. זה מאפשר לך לספק יישום ספציפי של פוּנקצִיָה שכבר מסופק על ידי מחלקת הבסיס שלו.

כמו כן, אנשים שואלים, מדוע אנו משתמשים בפונקציות וירטואליות?

פונקציות וירטואליות הם בשימוש כדי לתמוך ב"פולימורפיזם בזמן ריצה". כאשר פונקציה וירטואלית נקרא באמצעות מצביע Base Class, המהדר מחליט בזמן ריצה איזו גרסה של ה- פוּנקצִיָה כלומר, יש לקרוא לגרסת Base Class או לגרסת ה-Dirived Class שנדחתה. זה נקרא ריצה פולימורפיזם.

האם אתה יכול לעקוף פונקציה לא וירטואלית ב-C++?

ב-c++, כל חברי הכיתה פונקציות הם לֹא - וירטואלי כברירת מחדל. הֵם פחית להיעשות וירטואלי על ידי שימוש ב- וירטואלי מילת מפתח ב- פוּנקצִיָה חֲתִימָה. כאמור לעיל אם ה פוּנקצִיָה ממעמד בסיס נעשה וירטואלי אז ה פוּנקצִיָה של כיתות נגזרות או ילדים פוּנקצִיָה עם אותו שם יכול לעקוף של כיתת הבסיס פוּנקצִיָה.

מוּמלָץ: