类的静态数据成员在类内定义时的格式为:
static 类型 变量名;
类的静态数据成员要在类的外部进行初始化,因为静态数据成员不属于某一个对象所有,在内部初始化的话会造成多次初始化现象。
通常是在类成员函数实现的cpp文件中对类的静态数据成员进行初始化,如果在类定义的头文件或者是main函数单独所在的cpp文件中进行初始化的话均会报出编译错误。
正确用法举例如下:
//static.h
class A{
private:
 static int m;
public:
 void getn();
};

 
//static.cpp
#include "iostream"
#include "static.h"
using namespace std;
int A::m=2;
void A::getn()
{
 cout<<m;
}
 
 
//main.cpp
#include "static.h"
#include "iostream"
using namespace std;
void main()
{
 A a;
 a.getn();
}