zoukankan      html  css  js  c++  java
  • struct--------构造函数对结构体初始化的影响

    struct--------构造函数对结构体初始化的影响。
    没有构造函数时使用如下:
    struct ClassBook{
     int number;
     int age;
    };
    int main()
    {
     //以下两方式都对
     ClassBook bookst={1005,10};//或者ClassBook bookst;bookst.number=1001;bookst.age=10;
     cout<<bookst.number<<" "<<bookst.age<<endl;
     return 0;
    };
    添加构造函数后:
    struct ClassBook{
     int number;
     int age;
     ClassBook()
     {
      memset(this,0,sizeof(ClassBook));
     }
     
    };
    int main()
    {
     ClassBook bookst={1001,10};
     cout<<bookst.number<<" "<<bookst.age<<endl;
     return 0;
    };
    编译会报错: error C2552: “bookst”: 不能用初始值设定项列表初始化非聚合
    改成如下则不会有错。
    struct ClassBook{
     int number;
     int age;
     ClassBook()
     {
      memset(this,0,sizeof(ClassBook));
     }
     
    };
    int main()
    {
     ClassBook bookst;
     bookst.number=1001;
     bookst.age=10;
     cout<<bookst.number<<" "<<bookst.age<<endl;
     return 0;
    };
    总结:
    error C2552:不能用初始值设定项列表初始化非聚合
    如果一个结构体定义了构造函数,那么不能再在定义一个结构体变量的同时对其进行初始化.必须先定义,再初始化。如果没有构造函数则两种都行。
  • 相关阅读:
    C#中一行代码实现18位数字时间戳转换为DateTime
    Java,Python,前端,Linux,公众号等5T编程资源整理免费下载
    Winform中使用FastReport的DesignReport时怎样给通过代码Table添加数据
    一、渐变边框
    一、Dev单元格
    一、Dev
    一、
    三、数据-1
    三、接口数据格式-2
    二、GitLab使用
  • 原文地址:https://www.cnblogs.com/polly333/p/4498407.html
Copyright © 2011-2022 走看看