跪求C++静态成员变量的问题????????????

来源:百度知道 编辑:UC知道 时间:2024/05/22 17:45:50
#include <iostream.h>
class data
{
public:
data(){}
private:
int a;
int b;
double c;
};
class test
{
public:
test();
static data[10]
}
//...

//??????????????????????????????
//怎样对...data进行初始化?????
//...

int main()
{
test t;
return 0;
}
补充:
(1)首先,static data[10]出现错误,应该改为 static data m[10];
(2)经过我查找资料,发现可以如下初始化:

#include <iostream.h>
class data
{
public:
void Setdata(int ia=0,int ib=0,double dc=0){a=ia;b=ib;c=dc;}
void Disp(){cout<<"a="<<a<<endl<<"b="<<b<<endl<<"c="<<c<<endl<<endl;}
data(){}
private:
int a;
int b;
double c;
};

class test
{
public:
test(){}
static data m[10];
static void SetStatic(){ for(int i=0

应当在class 的 constructer (中文是不是叫 构造函数?)
test(){
....
}
里面初始化。


static int data[10]={1,2,3,4,5,6,7,8,9,10};

不是啊! 应该是在类的外部对静态成员进行初始化!就是在类的实现文件中进行初始化。
首先你的程序有一个小的错误,定义一个对象的数组,你忘记输入数组名了,假设数组名为 datevector ,
那么那句话就应该是 static data datevector[10];
在类的外部输入 输入 data test::datevector[0] =....
来进行初始化

楼上太有创意了,要是我定义static data datevector[100000];就有的玩了,随便写写代码就是10w行,太nb了!!
像int double这种内置类型或者是有无参构造函数的类可以这么在类外初始话,其他自定义类型还是在构造函数初始话吧,定义一个bool inied来防止重复初始化

你在test中的data是上面定义的类吗?