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 }

 

posted @ 2018-01-23 21:50  8号prince  阅读(146)  评论(0编辑  收藏  举报