C++/מחלקות: הבדלים בין גרסאות בדף

נוספו 4 בתים ,  לפני 10 שנים
אין תקציר עריכה
אין תקציר עריכה
== הגדרת מחלקה ==
 
נגדיר את המחלקה בדומה למבנה. נרשום את המילה class ואחריהולאחריה את שם המחלקה:
<div style="direction: ltr;"><source lang="cpp">
class Date
};
</source></div>
המילה public מציינת שחברי המחלקה המוגדרים בהמשך יהיו ציבוריים, כלומר מכל מקום בתוכנית נוכל להשתמש בהם כמו במבנה רגיל. בעצם הגדרת מחלקה זו שקולה להגדרת מבנה דומה (struct במקום class). שלושת משתני המחלקה (d, m, y) מיצגיםמייצגים את התאריך באמצעות יום, חודש ושנה. כיוון שנוכל לשנות אותם באופן ישיר על ידי השמה, עלולות להתעורר שגיאות נסתרות, למשל אם בטעות נכניס ל-m את הערך 13. גישה כזו נוגדת את עקרון תכנות מונחה העצמים.
 
עתה, כדי לעשות את התוכנית שלנו נוחה יותר, ברורה יותר ויציבה יותר, נחסום את הגישה למשתני המחלקה. לצורך זה נשנה את המילה public ל-private, מותר למחוק אותה כלל כיוון שחברי המחלקה הבאים ראשונים לאחר הסוגרים המסולסלים מוגדרים אוטומטית כפרטיים:
};
</source></div>
כעת לא נוכל לגשת למשתני המחלקה d, m ו -y באופן ישיר, לכן נבנה ממשק נוח לטיפול במשתני מחלקה זו. ממשק זה יוגדר כציבורי והוא יבטיח שהערכים של משתני המחלקה תמיד יהיו תקינים (למשל m לא יהיה גדול מ-12). כמעט כל ממשק צריך לכלול פעולות המשנות את המחלקה ופונקציות לאחזור נתונים. בדוגמה זו נצהיר תחילה רק את כותרות הפונקציות (אתחול, הוספת יום/חודש/שנה, אחזור יום/חודש/שנה):
<div style="direction: ltr;"><source lang="cpp">
class Date