代码:
#include <iostream>
#include <string>
#include <cstdio> using namespace std; class A{
public:
static int a;
//static int a = 0; //编译不通过,无法在类内初始化
int b;
static void func1(){
cout<<"static func"<<endl;
a++;
//b++;
}
void func2(){
cout<<"normal func"<<endl;
a++;
b++;
}
}c;
int A::a = ; //编译通过可以在类外初始化 int main(int argc,char* argv[]){ c.func1();
c.func2(); return ;
}
输出:
static func
normal func
分析:
1、静态成员变量不能在类中初始化,需要在类外初始化。
2、静态成员函数只能访问静态成员变量,普通成员函数则没有这个限制。
3、静态成员函数不能为虚函数。