פתרון משימה 4 - פונקצית ה-main
 
בשלב זה של בנית התוכנית נתחיל להגדיר את הפונקציות, ונתחיל עם פונקצית ה-main:

int main()
{
 EmpTrans empTrans;
 try
 {
  Employee::Open();
  EmpTrans::Open();
 }
 catch(Employee::CantOpenFile)
  {return 1;}
 catch(EmpTrans::CantOpenFile)
  {return 1;}
 for ( ; ; )
 {
  try
  {
   empTrans.ReadNext();
   empTrans.Apply();
  }
  catch (EmpTrans::NoMore)
   {break;}
  catch(Employee::NoSuch)
   {break;}
 }
 Employee::Close();
 EmpTrans::Close();
 return 0;
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

פונקצית ה-main יוצרת אובייקט עדכון. היא קוראת כל רשומת עדכון לתוך אובייקט העדכון וקוראת לפונקציה Apply על אובייקט העדכון כדי להעביר את פרטי אובייקט העדכון לאובייקט העובד ולבסוף גם לקובץ העובדים.
כאשר אין יותר עדכונים, נצא מהלולאה ע"י תפיסת exception עם אובייקט מסוג NoMore המוגדר כמחלקה פנימית במחלקה EmpTrans.
זוהי פונקצית ה-main, אך קיימת בעיה בצורתה הנוכחית:
בשורת הקוד הראשונה בפונקציה אנו יוצרים אובייקט מסוג EmpTrans, כאשר בפועל היינו מעונינים ליצור אובייקט של אחת מתת המחלקות של ,EmpTrans בהתאם לסוג העדכון אותו קוראים וזאת כדי להשתמש בצורה הנכונה בהיררכית המחלקות שבנינו.