静态数据成员初始化的格式如下:　　　　<数据类型><类名>::<静态数据成员名>=<值>　　这表明: (1) 初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆。　　(2) 初始化时不加该成员的访问权限控制符private,public等。　　(3) 初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不是对象的成员。　　3、静态数据成员是静态存储的,它是静态生存期,必须对它进行初始化。　　4、引用静态数据成员时,采用如下格式:　　　<类名>::<静态成员名>　　如果静态数据成员的访问权限允许的话(即public的成员),可在程序中,按上述格式来引用静态数据成员。　　下面举一例子,说明静态数据成员的应用:#includeclass Myclass{public:Myclass(int a, int b, int c);void GetNumber();void GetSum();private:int A, B, C;static int Sum;};int Myclass::Sum = 0;Myclass::Myclass(int a, int b, int c){A = a;B = b;C = c;Sum += A+B+C;}void Myclass::GetNumber(){cout<<"Number="<}void Myclass::GetSum(){cout<<"Sum="<}void main(){Myclass M(3, 7, 10),N(14, 9, 11);M.GetNumber();N.GetNumber();M.GetSum();N.GetSum();}　　从输出结果可以看到Sum的值对M对象和对N对象都是相等的。这是因为在初始化M对象时,将M对象的三个int型数据成员的值求和后赋给了Sum,于是Sum保存了该值。在初始化N对象时,对将N对象的三个int型数据成员的值求和后又加到Sum已有的值上,于是Sum将保存另后的值。所以,不论是通过对象M还是通过对象N来引用的值都是一样的,即为54。　　静态成员函数和静态数据成员一样,它们都属于类的静态成员,它们都不是对象成员。因此,对静态成员的引用不需要用对象名。　　在静态成员函数的实现中不能直接引用类中说明的非静态成员,可以引用类中说明的静态成员。如果静态成员函数中要引用非静态成员时,可通过对象来引用。下面通过例子来说明这一点。#includeclass M{public:M(int a) { A=a; B+=a;}static void f1(M m);private:int A;static int B;};void M::f1(M m){cout<<"A="