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

void Date::AddDays(int days)
{
 day += days;
 if (day>30)
 {
  month += (day-1)/30;
  day = (day-1)%30+1;
 }
 if (month>12)
 {
  year += (month-1)/12;
  month = (month-1)%12+1;
 }
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

פונקציה כזאת, השייכת למחלקה כלשהי, נקראת פונקצית חבר (member function).
כפי שניתן לראות יש שני שינויים בלבד בינה לבין פונקציה רגילה של תכנות לא מונחה עצמים.ראשית, הוספנו את שם המחלקה ואת סימן השיוך :: לפני שם הפונקציה.
השינוי השני הוא בהתייחסות למשתני המחלקה (day, month ו-year) ע"י שימוש בשמותיהם בלבד. ב-C נידרש מצביע לפני שם המשתנה כדי לציין עם איזה העתק של Date ברצוננו לעבוד, ואילו ב-++C המהדר יודע זאת כבר לפי תוספת שם המשתנה בקריאה לפונקציה, כפי שרשמנו אותה בנושא הקודם.
במקרה זה הראינו מחלקה אשר הכרזת הפונקציה שלה ממוקמת בתוך הגדרת המחלקה ואילו ההגדרה עצמה של הפונקציה ממוקמת מחוץ להגדרת המחלקה.
אך ניתן לממש את פונקצית החבר גם בתוך הגדרת המחלקה, כמו בדוגמא הבאה:

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

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