דף הבית  שיעורים  מחלקות  העמסת אופרטורים - המשך
 
העמסת אופרטורים - המשך
 
לפניך דוגמא נוספת להעמסת אופרטור, הפעם נעמיס על האופרטור ==, אופרטור ההשוואה:

bool Date::operator==(Date &d)
{
 if (day!=d.day)
  return false;
 if (month!=d.month)
  return false;
 if (year!=d.year)
  return false;
 return true;
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

כעת, הדרך להפעיל את אופרטור ההשוואה עבור אובייקטים מסוג Date היא:

Date a(1996,1,1);
Date b(1990,1,1);
if (a==b)
 return true;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

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

Date d(1990,1,1);
Date e(1990,2,1);
e = -d;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

והנה אופרטור הפחתה בינארי:

e = d-5;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

האופרטור האונרי יהיה בעל ראש פונקציה כזה:

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

אין לו פרמטרים והוא מחזיר אובייקט Date.
והאופרטור הבינארי יהיה בעל ראש פונקציה כזה:

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

האופרנד השני, המספר, מועבר כפרמטר.