C++/מחלקות: הבדלים בין גרסאות בדף
תוכן שנמחק תוכן שנוסף
שורה 114:
בנאי הוא פונקציה שאנו מגדירים עבור המחלקה, הוא יופעל בעת היווצרות מופע חדש של מחלקה. תפקיד פונקציה זו הוא לבנות את המחלקה, כלומר לאתחל את משתני המחלקה.
עלינו לקרוא ל-init בכל פעם שנרצה לאתחל את המופע של המחלקה שהגדרנו למעלה. דבר זה גורר שגיאות, למשל אם נשכח לקרוא לפונקציה זו לפני השימוש הראשון במשתנה Date. בדומה לאי-אתחול של כל משתנה אחר, גם במשתני המחלקה יהיו ערכים לא מוגדרים - 'זבל'. הבנאים יאפשרו לנו לכתוב פונקציה שתאתחל את
<div style="direction: ltr;"><source lang="cpp">
class Date
{
int d, m, y;
public:
Date()
שורה 133 ⟵ 132:
cout << past.day() << '.' << past.month() << '.' << past.year();
</source></div>
בדוגמה זו יופיע תמיד בפלט 1.1.1970. ניתן להתייחס לבנאי כלפונקציה
''הערה:'' לא נוכל לקרוא לבנאי באופן ישיר {{קוד בשורה|past.Date()}} דבר זה נחשב לשגיאה, כי כל
נוכל להוסיף פרמטרים לבנאים שאנו כותבים, נזכור שהעמסת בנאים מותרת כמו העמסת שאר הפונקציות. לכן נוכל להגדיר בנאי המאתחל את
<div style="direction: ltr;"><source lang="cpp">
class Date
{
int d, m, y;
public:
Date()
{
d = 1, m = 1, y = 1970;
}
Date(int dd, int mm, int yy)
{
שורה 149 ⟵ 151:
}
// ...
};</source></div>▼
▲</source></div>
כאן העמסנו בנאי נוסף לבנאי הקודם. כדי למסור פרמטרים לבנאי כלשהו בעת אתחול המשתנה, נרשום אותם בסוגריים עגולים לאחר שם המשתנה (''הערה:'' אם אין פרמטרים אז אין לרשום סוגריים כלל):
<div style="direction: ltr;"><source lang="cpp">
|