结构体初始化为0,c++结构体初始化

  结构体初始化为0,c++结构体初始化

  结构可以自由组装数据,这是一种非常常见的数据打包方法。当我们定义一个结构,在没有初始化的情况下使用它,就会使用垃圾数据,这种错误很难发现。我们最好先初始化任何定义好的变量。

  除了使用memset和ZeroMemory,有没有更简单的初始化方式?因为有时候每定义一个结构就要用一次memset,会很繁琐。

  我在这里总结三种方法。有什么好的方法,不妨补充一下。

  1.在结构的构造函数中初始化。

  2.继承模板类初始化

  3.定义时初始化。

  在C中,结构和类在使用上没有本质区别,可以用构造函数初始化。代码如下:

  结构研究

  {

  intnNum

  boolbSex

  charszName[20];

  charszEmail[100];

  //构造函数初始化

  斯图()

  {

  nNum=0;

  bSex=false

  memset(szName,0,sizeof(SZ name));

  memset(szEmail,0,sizeof(szEmail));

  }

  };

  你可能已经发现,如果结构中的成员数量很大,那么逐个赋值是相当麻烦的。那你可以这样写:

  结构研究

  {

  intnNum

  boolbSex

  charszName[20];

  charszEmail[100];

  //构造函数初始化

  斯图()

  {

  memset(this,0,sizeof(Stu));

  //或以下格式

  //memset( nNum,0,sizeof(Stu));

  }

  };

  如果在结构中分配了一个指向堆内存的指针,那么在析构函数中释放它。以上是在构造函数中初始化的。

  2.继承模板类初始化

  首先,定义一个模板基类:

  模板类型名称

  classZeroStruct

  {

  公共:

  ZeroStruct()

  {

  memset(this,0,sizeof(T));

  }

  };

  所有定义的结构都是从这个模板类继承的。

  结构图:零结构图

  {

  intnNum

  boolbSex

  charszName[20];

  charszEmail[100];

  };

  这也支持初始化。

  3.定义时初始化。

  结构图

  {

  intnNum

  boolbSex

  charszName[20];

  charszEmail[100];

  };

  //定义时初始化

  stu stu 1={ 0 };

  在某些结构中,第一个成员指示结构的大小,因此它可以这样初始化:

  结构研究

  {

  int nSize//结构大小

  intnNum

  boolbSex

  charszName[20];

  charszEmail[100];

  };

  Stu stu1={sizeof(Stu),0 };

  后面的0可以省略,直接写成:stu stu 1={ sizeof(stu)};它将自动填充0。

  总结:

  以上三种方法是我所知道的初始化结构的方法。

  前两个,其实已经有了分类结构,类似于类的使用。三是纯结构的写作。

  如果目的仅限于结构,我建议不要添加构造函数或者从那个模板类继承,因为这个时候结构其实就是一个类。当定义一个结构时,不可能用第三种方式初始化它。当然,这个时候不需要初始化。

  看看微软定义的结构。基本上,没有构造函数和析构函数。因为结构的意思很明确,就是一包数据而已。如果增加了方法,它的意义就会改变。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: