פתרון משימה 5 -
הפונקציה Open במחלקה EmpTrans
 
לפני שנתבונן איך בדיוק נראית הפונקציה ReadNext, נתמקד לרגע בפונקציה לה ה-main קוראת עוד לפני - הפונקציה Open במחלקה EmpTrans, הפותחת את קובץ העדכונים:

void EmpTrans::Open()
{
 if (stream == NULL)
 {
  stream = new ifstream("emptrans.dat");
  if (stream->bad())
  {
   delete stream;
   throw CantOpenFile();
  }
 }
 stream->seekg(0);
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

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

class EmpTrans {
 /* same definition of class EmpTrans... */
protected:
 /* data members... */
 static ifstream *stream;
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

הפונקציה זורקת exception אם הקובץ לא ניתן לפתיחה ומשתמשת לשם כך באובייקט ממחלקה פנימית בשם CantOpenFile המוגדרת גם היא במחלקה EmpTrans.