class Fred { public: //... private: static int i_; //declares static data member "Fred::i_" //... };The linker will holler at you ("Fred::i_ is not defined") unless you define (as opposed to declare) Fred::i_ in (exactly) one of your source files:
int Fred::i_ = some_expression_evaluating_to_an_int;or:
int Fred::i_;The usual place to define static data members of class "Fred" is file "Fred.C" (or "Fred.cpp", etc; whatever filename extension you use).