דף הבית  שיעורים  מחלקות  העמסת אופרטורים - המשך
 
העמסת אופרטורים - המשך
 
דבר נוסף שכדאי להזכיר הוא השוני בין אופרטור ההוספה שלפני לאופרטור ההוספה שאחרי:

Date a(1996,1,1);
++a;
a++;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

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

Date Date::operator++()
{
 /* overloaded function body */
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

ואת אופרטור ההוספה שאחרי מגדירים בצורה הבאה:

Date Date::operator++(int)
{
 /* overloaded function body */
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

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

enum season {
 winter = 0,
 spring = 1,
 summer = 2,
 fall = 3;
};

season operator++();
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

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