הבדל מפתח - עקיפה לעומת עומס יתר ב-C
ההבדל העיקרי בין דריסה לעומס יתר ב-C הוא שהקשירה של קריאת השיטה הנדחקת להגדרה שלה מתרחשת בזמן ריצה בעוד שהקישור של קריאת השיטה העמוסה להגדרה שלה מתרחשת בזמן ההידור.
C היא שפת תכנות לשימוש כללי שפותחה על ידי Microsoft. היתרון העיקרי של C הוא שהוא תומך בתכנות מונחה עצמים (OOP). אחד העמודים של OOP הוא פולימורפיזם. זה נותן לאובייקט התנהגויות מרובות. ישנם שני סוגים בפולימורפיזם הידועים כדריסה והעמסת יתר. מאמר זה דן בהבדל בין עקיפת שיטה לעומס יתר ב-C.
מה זה עקיפה ב-C?
יש מושג חשוב אחד נוסף ב-OOP הוא ירושה. זה להשתמש בתכונות ובשיטות של המחלקה הקיימת כבר. זה משפר שימוש חוזר בקוד. המחלקה הקיימת כבר היא מחלקת הבסיס, והמחלקה החדשה ידועה בשם המחלקה הנגזרת. בעקיפה של פולימורפיזם, צריכה להיות מחלקה בסיס ומחלקה נגזרת. הכריכה של קריאת השיטה שנדחפה להגדרה מתרחשת בזמן ריצה. דוגמה היא כדלקמן.
איור 01: תוכנית C עם עקיפה
לפי התוכנית לעיל, המחלקה Shape היא המחלקה הבסיסית, והיא מכילה את שיטת התצוגה. מחלקה מלבן ומשולש הם מחלקות נגזרות. למחלקות הנגזרות הללו יש גם תצוגת שיטה זהה עם יישומים משלהן.
תחילה, נוצר משתנה ההתייחסות obj. זה מצביע על האובייקט Shape. אז, שיטת התצוגה של מחלקת Shape תתבצע. לאחר מכן, משתנה ההתייחסות מצביע על אובייקט המלבן. אז, שיטת התצוגה של מחלקה Rectangle תתבצע. לבסוף, משתנה ההתייחסות מצביע על אובייקט המשולש. אז, שיטת התצוגה של מחלקה Triangle תתבצע. שיטת התצוגה של המחלקה הבסיסית מחליפה על ידי שיטות התצוגה של המחלקות הנגזרות.
השיטה להפעלה נקבעת בזמן הריצה. כיתת Shape כתובה עם מילת מפתח 'וירטואלית'. הכיתות מלבן ומשולש נכתבות עם מילת מפתח 'עקוף'. אם לא נעשה שימוש במילות מפתח אלו, הפלט ידפיס את התוכן של שיטת התצוגה של מחלקת Shape עבור כולם.
מהו עומס יתר ב-C?
בעומס יתר, לשיטות מרובות יש את אותו שם אבל עם פרמטרים שונים. הפרמטרים יכולים להיות מסוגים שונים. לשיטות יכולות להיות גם מספר שונה של פרמטרים.עומס יתר של השיטה מתרחש באותה מחלקה. הכריכה של שיטות עמוסות מדי להגדרה מתרחשת בזמן הידור. עיין בתוכנית C שלהלן.
איור 02: תוכנית C עם עומס יתר
לפי התוכנית לעיל, לכיתה A יש שתי שיטות עם אותו שם שנקראות sum. יש להם סוגים שונים של פרמטרים. בתוכנית הראשית נוצר אובייקט של A. הסכום (2, 3) יפעיל את שיטת הסכום עם מספרים שלמים. הסכום (5.1, 7.94) יפעיל את שיטת הסכום עם ערכים כפולים. לשתי השיטות יש אותו שם ואותו מספר פרמטרים. אבל סוגי הפרמטרים שונים. השיטה הנדרשת נקראת בהתאם. עומס יתר יכול להתרחש גם אם שמות השיטה וסוגי הפרמטרים זהים אך מספר הפרמטרים שונה.
מהו הדמיון בין עקיפה לעומס יתר ב-C?
גם עקיפה וגם עומס יתר ב-C הם סוגים של פולימורפיזם
מה ההבדל בין עקיפה לעומס יתר ב-C?
עקיפה לעומת עומס יתר ב-C |
|
עקיפה ב-C היא לספק יישום ספציפי בשיטת מחלקה נגזרת עבור שיטה שכבר קיימת במחלקה הבסיסית. | עומס יתר ב-C הוא ליצור מספר שיטות עם אותו שם עם יישומים שונים. |
פרמטרים | |
ב-C Overriding, לשיטות יש את אותו שם, אותם סוגי פרמטרים ואותו מספר פרמטרים. | ב-C עומס יתר, לשיטות יש את אותו שם אבל מספר שונה של פרמטרים או סוג אחר של פרמטרים. |
התרחשות | |
ב-C, החלפה מתרחשת בתוך מחלקת הבסיס והמחלקה הנגזרת. | ב-C, עומס יתר מתרחש באותה מחלקה. |
זמן כריכה | |
הכריכה של קריאת השיטה שנדחפה להגדרה שלה מתרחשת בזמן ריצה. | הכריכה של קריאת השיטה העמוסה להגדרה שלה מתרחשת בזמן הידור. |
מילים נרדפות | |
עקיפה נקראת פולימורפיזם בזמן ריצה, פולימורפיזם דינמי או כריכה מאוחרת. | עומס יתר נקרא פולימורפיזם של זמן קומפילציה, פולימורפיזם סטטי או כריכה מוקדמת. |
סיכום - עקיפה לעומת עומס יתר ב-C
עקיפה ועומס יתר הם שני סוגים של פולימורפיזם. ההבדל בין עקיפה לעומס יתר ב-C הוא שהקשירה של קריאת השיטה הנדחקת להגדרה שלה מתרחשת בזמן ריצה בעוד שהקישור של קריאת השיטה העמוסה להגדרה שלה מתרחשת בזמן הידור.