11 Oct 2012

C++静态成员变量的初始化

收藏到CSDN网摘
今天构造一个NX的显示元素类,碰到了根据不同的type画出不同的形状,并自动增减计数器来动态生成名称(001,002这类的字符串)的问题,涉及到了静态成员的初始化.包括,静态元素,静态数组,静态vector,静态map,其中就数map类型头疼


1. 如果是静态数据,直接在cpp文件中初始化就好
2. 静态数组,类似1
3. 静态vector,构造数组先,然后一次初始化
4. 静态map,暂时无法初始化,只能写进构造函数(如果有解决办法,请回复)

class A
{
static int aa;
static double bb[3]; // 如果的确需要常量数组,必须定义为静态常量数组,static const这种才能正确初始化
static vector<string> cc;
static map<string,int> dd; // 暂时没办法初始化,只能在构造函数中初始化

A()
{
string temps[4] = {"11","22","33","44"};
for (int i=0;i<4;i++) dd[temps[i]] = i;
}
};

int A::aa = 0;
double A::bb[] = {0.0,0.0,1.0};
string temp[] = {"1","2","3","4"};
vector<string> A::cc(temp,temp+sizeof(temp)/sizeof(string));

No comments :

Post a Comment