כעת עליך לממש את הפונקציה Open במחלקה Employee הפותחת את קובץ העובדים.
לצורך כך נמצא שימוש גם ליצירת תבנית - Array, המגדירה מערך מטיפוסים שונים באורך משתנה.
נתחיל בהגדרת הפונקציה Open:
הפונקציה פותחת את קובץ העובדים לקריאה - employee.dat.
במידה ולא ניתן לפתוח את הקובץ היא תזרוק exception מסוג CantOpenFile.
הנח שקובץ העובדים הוא קובץ בינארי ולכן עליך להשתמש בדגל ios::binary בעת יצירת stream קלט לקובץ.
לאחר מכן הפונקציה בונה אינדקס לרשומות קובץ העובדים.
עליך ליצור מערך שיכיל אלמנטים, כאשר כל אלמנט הוא struct המכיל שני שדות: מספר עובד ומיקום הרשומה בקובץ.
הפונקציה תקרא כל רשומה ותכניס אותה לאינדקס.
את האינדקס ומשתניו הוסף כמשתני מחלקה סטטיים במחלקה Employee ואל תשכח להגדירם ולאתחלם.
כעת נבנה את התבנית Array שתשמש אותנו להגדרת מערך האינדקס:
התבנית Array תכיל זיכרון עבור המערך ואת גודל המערך בכל רגע. בנוסף היא תכיל פונקצית בנאי, מפרק ופונקציה המעמיסה את האופרטור [] כדי שניתן יהיה להגדיל את המערך בעת הוספת אלמנטים חדשים.