1.在c++类的成员变量被声明为static时,称为静态成员变量,意味着它被该类的所有对象(实例)所共享。

静态成员是解决同一个类的不同对象之间的数据和函数共享问题。

静态成员是类的所有对象共享的成员,而不是某个对象的成员,它在对象中不占存储空间,是属于整个类的成员。

静态成员分为静态数据成员和静态成员函数。

2.

staticint total;  //声明静态成员
 
int Student::total=0;  //静态成员初始化
 
cout<<"total:"<<:total code="">

3.a    静态数据成员 

在类定义中,用关键字static修饰的数据成员称为静态数据成员。静态数据成员的值对所有对象都是一样的,如果改变它的值,则在各对象中这个数据成员的值都同时改变了。这样可以节约空间,提高效率。如果在一个函数中定义了静态变量,在函数结束时该静态变量并不释放,仍然存在并保留其值。

  1. 静态属性包含在类中要封装的数据,可以由所有类的实例共享。 
  2. 必须在文件作用域中,对静态成员数据作一次且只能作一次定义性说明。 
  3. 静态数据成员必须进行初始化。在程序一开始运行时静态数据成员就必须存在,因为在程序运行中要调用,所以静态数据成员不能在任何函数内分配空间和初始化。最好在类的实现部分中完成静态数据成员的初始化。 
  4. 静态数据成员初始化与一般数据成员初始化不同,其格式如:<数据类型> <类名>::<静态数据成员名>=<值>; 另外,静态的数据成员不仅可以用对象名来调用,也可以用类名来调用。 

3.b 

2)静态成员函数 

静态成员函数的作用是为了处理静态成员数据。与静态成员数据一样,它可以由对象名来调用,也可以用类名来调用。  静态成员函数不能直接使用非静态成员。