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

Date::Date()
{
 day = 1;
 month = 1;
 year = 1990;
 ++count;
}

Date::~Date()
{
 --count;
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

מעלים את המונה בבנאי ומפחיתים אותו במפרק.
אל המשתנה הסטטי פונים מתוך האובייקטים כמו לשאר משתני המחלקה, כאילו הוא משתנה לוקלי.
ניתן לפנות למשתנה הסטטי גם ע"י שימוש באופרטור השיוך:
int GetCount()
{
 int objectCount;
 objectCount = Date::count;
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

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

class Employee {
public:
 char name[64];
 int age;
 int profit;
 int daysOff;
 static int highestProfit;
 static int LessDaysOff;
 Employee();
 void CalcPay();
 Employee *BestEmployee();
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

מכיוון שהיא מטפלת בכל מחלקת העובדים ולא בעובד אחד, עליה להיות סטטית.