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

结构体初始化有关问题

2013-01-11 
结构体初始化问题有个结构体定义如下:typedef struct{................}PMM初始化:PMM ttData{0} //成

结构体初始化问题
有个结构体定义如下:
typedef struct
{
........
........
}PMM;

初始化:
PMM ttData={0}; //成功

如果改为以下两步骤来初始化,则不成功(编译不成功,提示说语法错误),为啥?
PMM ttData;
ttData ={0};
怎样才能分步骤初始化数组?因为我需要先在一个地方定义变量,然后在其他地方去初始化他。
[解决办法]
第一个是初始化,第二个是赋值,要编译成功的话,你的PMM类中需要重载operator=操作符
PMM类提供一个函数即可。
[解决办法]
后面就只能通过赋值方式,不能用初始化了
[解决办法]
#1 得分:0 回复于: 2012-12-16 21:57:26 
第一个是初始化,第二个是赋值,要编译成功的话,你的PMM类中需要重载operator=操作符
PMM类提供一个函数即可。 
[解决办法]
使用memset()函数
PMM ttData;
memset(&ttData , 0 , sizeof(PMM ))
这个函数也可以初始化结构体数组
[解决办法]
初始化和赋值还是要区分开的

我最早学C++的时候也觉得忒奇怪了。后来看了重载以后发现,编译器认为这是两种模式。

热点排行