C++中的static关键字
类中的成员可分为普通成员和静态成员,函数可分为普通函数和静态函数。普通成员只能是每个对象独自拥有,而静态成员则是类的所有对象所共有的。静态成员函数中,只能调用静态成员变量,不能调用普通成员变量。
例如:
1 class mydata 2 { 3 public: 4 mydata(int A,int B){a=A;b=B;} 5 ~mydata(){}; 6 void static fun() 7 { 8 cout<<"c:"<<c<<endl;//合法。静态函数中能且只能调用静态成员变量 9 //cout<<"a:"<<a<<endl;//非法!静态函数中不能调用普通成员变量 10 } 11 12 void getA(){cout<<"a:"<<a<<endl;} 13 void getB(){cout<<"b:"<<b<<endl;} 14 void getC(){cout<<"c:"<<c<<endl;} 15 16 private: 17 int a; 18 int b; 19 static int c; 20 }; 21 22 int mydata::c = 5;//静态成员变量的定义性说明 23 24 int main() 25 { 26 mydata d1(3,4); 27 d1.fun();//通过对象调用类的静态成员函数 28 mydata::fun();//通过类名调用类的静态成员函数 29 30 return 0; 31 }