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

int count;

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

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

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

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

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

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

int Date::count = 0;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט