读书人

类中的结构体数组怎么初始化

发布时间: 2012-02-12 17:16:33 作者: rapoo

类中的结构体数组如何初始化?
刚从C转过来。。。N多东西不懂

【.h】
typedef struct
{
static const char * VarName;
static const charVarType;
static const unsigned shortVarLen;
void *VarHead;
}VarUnit;

class c_cardep01 : public c_cardbase
{
protected:
t_ep01card;
ucharstore_flg;
time_tstore_timer;
private:
VarUnitVarTable[] =
{
{ "card.port[0].name ", _STRING_, 64, card.port[0].name},
{ "card.port[0].J2.tra ", _STRING_, 64, card.port[0].J2.tra},
{ "card.port[0].J2.exp ", _STRING_, 64, card.port[0].J2.exp},

{ "-END- ", 0, 0, NULL}
};

public:
c_cardep01(t_cardinfo * pinfo);
~c_cardep01(void);
virtual void store(void);
......
}

【.cpp】里
c_cardep01::c_cardep01(t_cardinfo * pinfo) : c_cardbase( pinfo )

{
VarTable[] =
{
{ "card.port[0].name ",_STRING_,64,card.port[0].name},
{ "card.port[0].J2.tra ",_STRING_,64,card.port[0].J2.tra},
{ "card.port[0].J2.exp ",_STRING_,64,card.port[0].J2.exp},
{ "-LEND- ",0,0,NULL},

{ "-END- ",0,0,NULL}
};
...........
}
都不行啊,另外也试过把类里的const static去掉等方法都不行。
不知道怎么赋值了。
网上查了一下说只能一条一条赋值?
还有说用memcpy的,就是构造函数里新建一个数组,然后这样赋值,再memcpy,不过还要计算字节数什么的,而且浪费了一倍内存好像

有高手点提一下么?

[解决办法]
只能一个个赋。
死心吧。
[解决办法]
除非有规律,否则就自己慢慢赋吧.
[解决办法]
痛苦也没办法,我也弄过,最多有一百多个,哈哈..
[解决办法]
可以用static成员的话能方便些, 每个对象想要不同的话只能劳动了
[解决办法]
不能够在类的声明里赋值,
至于为什么不能在构造函数里赋值,可能是在类的声明里没有分配足够的内存。

不如这样,将结构数组定义为全局变量,在类的声明里放这个结构的指针数组,在构造函数里将这些指针指向那些全局变量。

读书人网 >C++

热点推荐