דף הבית  שיעורים  מחלקות  העמסת אופרטורים
 
העמסת אופרטורים
 
כמו שראית בשיעורים קודמים, יש דברים רבים שניתן לעשות עם אובייקטים, אך המטרה העיקרית ב-++C עבור אובייקטים, היא להפוך אותם לטיפוסים ככל היותר מובנים בשפה.
לדוגמא, ניתן ליצור אובייקטים מהסוג Date באותה דרך בה יוצרים אובייקטים מסוג int.
ברגע שהגדרת את המחלקה Date, היא מתנהגת כמו חלק מהשפה, בדיוק כמו int.
אחד הדברים שאפשר לעשות עם int, זה להפעיל עליו אופרטורים כמו + ו- -.
תחילה, נזכיר מהו אופרטור. אופרטור הוא סימן מיוחד בשפה, המורה למהדר לבצע פעולה מתמטית או לוגית. ב-++C יש גם אופרטורים עבור משימות מיוחדות כמו new ו-delete להקצאת ושחרור זיכרון.
אופרטורים מתחלקים לאופרטורים אונארים ואופרטורים בינארים. אופרטור אונארי פועל על ארגומנט אחד (נקרא אופרנד) לדוגמא אופרטור ההוספה שהכרנו ב-C:

int a = 5;
a++;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

ואופרטור בינארי הפועל על שני אופרנדים, לדוגמא אופרטור החיבור:

int b = 5;
b = b+2;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

כעת נלמד איך אפשר להשתמש באופרטורים בעבודה עם מחלקות.

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

יתכן שנרצה להשתמש באופרטור =+ כדי לקדם את התאריך ב-30 יום, כמו כאן:

a += 30;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

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

class Date {
public:
 int day;
 int month;
 int year;
 Date(int d, int m, int y);
 void operator+=(int a);
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט