首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在类定义内定义静态数组有关问题

2012-02-14 
在类定义内定义静态数组问题VC2003,在类定义时,由于此时并没有此类的实例,因此在类定义内不能对成员变量赋

在类定义内定义静态数组问题
VC2003,在类定义时,由于此时并没有此类的实例,因此在类定义内不能对成员变量赋值,如
class   Cxxx
{
public:
    int   a;     //   不能为int   a   =   1;
}
若想此时赋值,须加为静态变量,即
static   int   a   =   1;
但是如果要在类定义时声明一个数组,我用如下语句
static   int   a[2]   =   {1,   2};
则编译不能通过。
请教各位原因和解决方案。特别的,我这个a[2]需要为const,所以不能采取这里声明,后面再赋值的办法。

[解决办法]
static int a[2];
到cpp文件里写
int Cxxx::a[2] = {1, 2};

[解决办法]
class Cxxx
{
public:
static int a[2]; // 不能为int a = 1;
};

int Cxxx::a[2]={1,2};
[解决办法]
类定义的写法
只是指出了初始化的值,未实际分配内存
需类定义的外部给出定义
[解决办法]
类中给static成员赋值,实际上只是指定了一个值,并没有分配实际的空间。
必须到.cpp中的一开始给静态数据成员初始化——根据你的需要。

热点排行