2.静态数据成员被 类 的所有对象所共享,包括该类派生类的对象。即派生类对象与基类对象共享基类的静态数据成员。举例如下: class base{ public : static int _num;//声明 }; int base::_num=0;//静态数据成员的真正定义
class derived:public base{ };
main() { base a; derived b; a._num++; cout<<"base class static data number _num is"<b._num++; cout<<"derived class static data number _num is"<} // 结果为1,2;可见派生类与基类共用一个静态数据成员。
3.静态数据成员可以成为成员函数的可选参数,而普通数据成员则不可以。举例如下: class base{ public : static int _staticVar; int _var; void foo1(int i=_staticVar);//正确,_staticVar为静态数据成员 void foo2(int i=_var);//错误,_var为普通数据成员 };