פתרון משימה 10 -
הפונקציה Apply במחלקה EmpTrans
 
כעת, לאחר שעברנו על כל פונקציות הקריאה, נשארה פונקציה אחת אחרונה בה נרצה להתבונן, פונקצית Apply המיישמת את העדכון על העובד המתאים.
זכור שיש שלוש פונקציות Apply שונות, אחת לכל סוג של עדכון. המהדר יקרא לפונקציה המתאימה לסוג העדכון הנוכחי.
נתבונן באחת מפונקציות ה-Apply, זו למחיקת עובד:

void EmpTransDelete::Apply()
{
 Employee employee;
 try
  {employee.Read(number);}
 catch(Employee::NoSuch)
 {
  cerr << endl << "Transaction found for
              invalid employee: "
<< number;
  throw;
 }
 employee.SetStatus(EmpStatusInactive);
 employee.Update();
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

הפונקציה מעדכנת את מצב העובד באובייקט העובד למצב "לא פעיל". לאחר מכן היא קוראת לפונקציה Update לעדכון העובד בקובץ העובדים.
פונקציות ה-Apply האחרות פשוטות באותה המידה, הן מבצעות את העיבוד המתאים לסוג העדכון שלהן.
שים לב שהפונקציה Apply אינה יכולה לגשת אל משתני המחלקה של המחלקה Employee, מכיוון שמשתני המחלקה Employee מוגדרים כ-protected, כלומר פונקציות חיצוניות למחלקה אינן יכולות לגשת אליהם.
כדי לאפשר לפונקציה Apply לגשת אל משתני המחלקה, הגדרנו מספר פונקציות פשוטות, המוגדרות כ-public ומשמשות ממשק, דרכו ניתן לשנות את נתוני המחלקה Employee כמו הפונקציה SetStatus:

class Employee {
 /* same definition of class Employee... */
public:
 void SetStatus(EmpStatus s) {status = s;}
 /* member functions... */
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט