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

MFC 结构体赋值 出现有关问题

2012-03-06 
MFC 结构体赋值 出现问题大家好,我是新手.请大家多多关照今天在练习一个MFC程序时,我发现了一个问题.我在V

MFC 结构体赋值 出现问题
大家好,我是新手.请大家多多关照
今天在练习一个MFC程序时,我发现了一个问题.
我在VIEW类的.h头文件里首先定义了2个结构体
typedef   struct  
{
intrect[4];    
}RectPIC;
typedef   struct  
{
RectPICTransferImage[4];
int   TansferPoint;
}MyObject;

之后在VIEW类的.CPP文件里,我想建立个结构体并对其赋值.CPP文件在自动生成时已经包含.h.  
首先我在所有其他函数外  
MyObject   m_stuff[6]={0};
生成一个此结构体的数组,并没有问题.然而之后.我在所有函数外写下
m_stuff[0].TansferPoint=1;
却出现编译问题
D:\复件   MoveBlockver3CPL\MoveBlockver3View.cpp(49)   :   error   C2466:   cannot   allocate   an   array   of   constant   size   0
D:\复件   MoveBlockver3CPL\MoveBlockver3View.cpp(49)   :   error   C2143:   syntax   error   :   missing   '; '   before   '. '
D:\复件   MoveBlockver3CPL\MoveBlockver3View.cpp(49)   :   error   C2501:   'm_stuff '   :   missing   storage-class   or   type   specifiers
D:\复件   MoveBlockver3CPL\MoveBlockver3View.cpp(49)   :   error   C2371:   'm_stuff '   :   redefinition;   different   basic   types
                D:\复件   MoveBlockver3CPL\MoveBlockver3View.cpp(48)   :   see   declaration   of   'm_stuff '
D:\复件   MoveBlockver3CPL\MoveBlockver3View.cpp(49)   :   error   C2143:   syntax   error   :   missing   '; '   before   '. '
但将 "m_stuff[0].TansferPoint=1; "写入构造函数的语句却编译通过.
CMoveBlockver3View::CMoveBlockver3View()
{
//   TODO:   add   construction   code   here
m_stuff[0].TansferPoint=1;

}
我想知道为什么,第一次发帖子,恳请大家帮助

[解决办法]
首先我在所有其他函数外
MyObject m_stuff[6]={0};
------------
这里是定义全局变量并初始化,没问题

生成一个此结构体的数组,并没有问题.然而之后.我在所有函数外写下
m_stuff[0].TansferPoint=1;
------------------
这里是赋值,赋值必须在函数体内。

热点排行