Initializing Static Members

Static member initialization occurs in class scope. Therefore, they can access other member data or functions. For example:

class DialogWindow
{
public:
    static short  GetTextHeight();
private:
    static short nTextHeight;
};

short DialogWindow :: nTextHeight = GetTextHeight();

Note that in the preceding definition of the static member nTextHeight, GetTextHeight is implicitly known to be DialogWindow :: GetTextHeight.