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

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

כעת, הבה נראה איך קוראים לפונקציה AddDays. תחילה ניצור משתנה מסוג Date:

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

משתנה a נקרא אובייקט או מופע של המחלקה Date.
כעת ניתן להשים ערכים לאלמנטים של המבנה, באותה דרך שבה עשינו זאת קודם:

a.day = 10;
a.month = 10;
a.year = 1956;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

כעת כדי להוסיף 45 יום לתאריך באמצעות הפונקציה, נעשה כך:

a.AddDays(45);
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

שים לב שמשתמשים באותו תחביר להשמת נתונים לחלקי המבנה ולקריאה לפונקציה, זאת כדי לציין על איזה משתנה אנו עובדים.
פרט אחרון לגבי ההגדרה הזאת הוא, שבמקום השימוש במילה struct, ניתן באותה מידה להשתמש במילה class. שתי המילים הן כמעט ללא שינוי, בד"כ נהוג להשתמש ב-struct כאשר אין פונקציות, וב-class כאשר יש:

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

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