דף הבית שיעורים מחלקות גישה מונחית עצמים
 
גישה מונחית עצמים
 
בשיעור זה נתחיל בחלק החשוב של ++C: תכנות מונחה עצמים (object oriented programming). גישה זו צברה פופולריות רבה בשנים האחרונות, ובצדק, היא גורמת לתוכניות להיות גמישות יותר וקלות יותר לשינוי. היא הופכת אותן לאמינות יותר ומקלה על השימוש בחלקים מתוכנית אחת בתוכנית אחרת. ובנוסף אינה קשה ללמידה, כפי שתראה, והרעיונות המרכזיים שלה פשוטים בהחלט.
נתחיל מהצגת הגישה מונחית העצמים לעומת הגישה הרגילה שבה השתמשת בתוכניותיך ב-C.
נניח שאתה עובד הרבה עם תאריכים בתוכניותיך, ואתה מחליט ליצור ספריה של פונקציות המטפלות בתאריכים. נניח שכל הפונקציות האלו משתמשות במבנה מסוים של תאריך, כמו כאן:

struct Date {
 int day;
 int month;
 int year;
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

במידה ואתה רוצה ליצור משתנה מסוג Date, אתה עושה זאת בדרך הבאה:

Date a;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

ונתבונן בפונקציה אחת מתוך כל פונקציות הספרייה האפשריות, פונקציה המוסיפה מספר ימים לתאריך, אשר ההכרזה שלה נראית כך:

void AddDays(Date *oneDate, int days);
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

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

struct Date {
public:
 int day;
 int month;
 int year;
 void AddDays(Date *oneDate, int days);
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

פעולה זאת של הכנסת הכרזת הפונקציה לתוך המבנה עלולה להפתיע אותך, מכיוון שב-C לא ניתן לעשות זאת, אך יש בכך הגיון רב. כעת הנתונים והפונקציה ששיכים לאותה ישות מוגדרים כיחידה אחת.
דבר זה הוא העיקרון החשוב ביותר בתכנות מונחה עצמים: הגדרת נתונים והגדרת קבוצת הפונקציות שפועלות על הנתונים האלו כיחידה אחת.צורת מבנה זו נקראת מחלקה (class), הנתונים במבנה זה נקראים משתני מחלקה (data members) ואילו הפונקציות נקראות פונקציות חבר (member functions).