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

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

2012-02-12 
类中的结构体数组如何初始化?刚从C转过来。。。N多东西不懂【.h】typedefstruct{staticconstchar*VarNamestati

类中的结构体数组如何初始化?
刚从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成员的话能方便些, 每个对象想要不同的话只能劳动了
[解决办法]
不能够在类的声明里赋值,
至于为什么不能在构造函数里赋值,可能是在类的声明里没有分配足够的内存。

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

热点排行