关于const static成员的初始化
总结:
- static修饰的数据成员需要在类外初始化
- const 修饰的数据成员需要在构造函数的初始化列表中初始化
- static const同时修饰的数据成员函数可以在类内初始化,也可以在类外初始化
- 注意:静态成员在类外初始化需要忽略static
代码示例
#include<iostream>
using namespace std;
class A{
public :
A():b(0){}
static int a;//在类外初始化za
const int b;//在构造函数的初始化列表中初始化
static const int c =3;//可以在类中初始化,也可以在类外
};
int A::a =1;//静态成员在类外初始化需要忽略static
int main()
{
A k;
cout<<k.a<<" "<<k.b<<" "<<k.c<<endl;
return 0;
}