标签:
代码:
1 #include <iostream> 2 #include <string> 3 #include <cstdio> 4 5 using namespace std; 6 7 class A{ 8 public: 9 static int a; 10 //static int a = 0; //编译不通过,无法在类内初始化 11 int b; 12 static void func1(){ 13 cout<<"static func"<<endl; 14 a++; 15 //b++; 16 } 17 void func2(){ 18 cout<<"normal func"<<endl; 19 a++; 20 b++; 21 } 22 }c; 23 int A::a = 0; //编译通过可以在类外初始化 24 25 int main(int argc,char* argv[]){ 26 27 c.func1(); 28 c.func2(); 29 30 return 0; 31 }
输出:
static func normal func
分析:
1、静态成员变量不能在类中初始化,需要在类外初始化。
2、静态成员函数只能访问静态成员变量,普通成员函数则没有这个限制。
3、静态成员函数不能为虚函数。
标签:
原文地址:http://www.cnblogs.com/hu983/p/5505512.html