这是咋回事?编译提示出错

这是怎么回事?编译提示出错
我有一段代码如下:

class UNIT
{
public:
static HDC hdc;
static BITMAP bitmap;
static SIZE sz;
char a[6];
char len;
char attri;
};
struct UNITPARA
{
POINT pt;
char hnum;
char vnum;
char unitnum;
};
class JW
{
public:
RECT rect;
char jw[4];
char bmno;
UNIT zg[32];
UNIT name;
UNIT jm;
UNITPARA zg;
UNITPARA name;
UNITPARA jm;
}

其中UNIT和UNITPARA是两个类。

可是编译的时候提示:

1>c:\d++\bjwb\global.h(55) : error C2040: “JW::zg”: “UNITPARA”与“UNIT [32]”的间接寻址级别不同

如果把三个UNIT变量和三个UNITPARA变量位置颠倒,会在第二种变量开头处提示:

1>c:\d++\bjwb\global.h(54) : error C2040: “JW::zg”: “UNIT [32]”与“UNITPARA”的间接寻址级别不同

这是怎么回事?难道类中不能定义两种不同的子对象吗?总是在第二种子对象开始处提示“。。。与。。。间接寻址级别不同”。



------解决方案--------------------
C/C++ code
class JW
{
public:
RECT rect;
char jw[4];
char bmno;
UNIT zg[32];//--------------------
UNIT name;
UNIT jm;
UNITPARA zg;//--------------------
UNITPARA name;
UNITPARA jm;
};