פתרון משימה 3 - מחלקת Date
 
כעת נתאר את מחלקת Date, אשר משמשת אותנו להגדרת משתנה של תאריך ההעסקה של העובד במחלקת Employee ובמחלקת EmpTrans.
המחלקה Date מוגדרת בדיוק כמו המחלקה אותה בנינו במהלך השיעורים הקודמים:

class Date {
protected:
 int year;
 int month;
 int day;
public:
 class DateErrors {};
 class OutOfRange:public DateErrors {};
 class YearOutOfRange:public OutOfRange {};
 class MonthOutOfRange:public OutOfRange {};
 class DayOutOfRange:public OutOfRange {};
public:
 Date(int year=1901, int month=1, int day=1)
   { Set(year, month, day); }
 int Year()
   { return year; }
 int Month()
   { return month; }
 int Day()
   { return day; }
 void Set(int year,int month,int day);
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

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