在c++中,struct可以同class一样拥有自己的成员,只不过struct成员的默认访问的是public范围。如果在struct中定义了构造函数,则默认构造函数(无参构造函数)必须显式定义才能使用(隐式构造方法是编译器自动给出的,显式构造方法是程序员自己定义的)。否则,在创建此结构体的实例的时候,会出现编译错误

struct Test{int a;char *b;
};
Test* test=new Test;//结构体使用默认构造函数,编译通过struct Test1{Test1(int a):_a(a){}int _a;
}
struct Test2{Test1 t1;
};
Test2* test2=new Test2;//结构体Test1没有显式定义无参构造函数,调用失败,编译无法通过

Test1中没有显式定义的无参构造函数,而生成实例的方法却调用的是无参构造。
解决方法有:

  1. 为Test1定义默认构造函数
  2. 将Test1数据成员声明为指针类型(此时Test2结构体中存储的是Test1的4字节地址,不需要调用Test1的构造函数)。
//提供默认构造函数
struct Test1{Test1():_a(0){}Test1(int a):_a(a){}int _a;
};
//数据成员声明为指针
struct Test2{Test1* t;
};

关于struct和class的知识相关推荐

  1. linux 系统调用 hook 总结

    1. 系统调用Hook简介 系统调用属于一种软中断机制(内中断陷阱),它有操作系统提供的功能入口(sys_call)以及CPU提供的硬件支持(int 3 trap)共同完成. 我们必须要明白,Hook ...

  2. linux系统调用挂钩方法总结

    相关学习资料 http://xiaonieblog.com/?post=121 http://hbprotoss.github.io/posts/li-yong-ld_preloadjin-xing- ...

  3. c语言 如何创建adt_C语言探索之旅 | 第二部分第六课:创建你自己的变量类型

    内容简介 前言 定义一个 struct 结构体的使用 结构体指针 union enum 总结 第二部分第七课预告 1. 前言 上一课是 C语言探索之旅 | 第二部分第五课:预处理 ,应该是比较轻松的. ...

  4. Linux系统调用Hook姿势总结

    相关学习资料 http://xiaonieblog.com/?post=121 http://hbprotoss.github.io/posts/li-yong-ld_preloadjin-xing- ...

  5. python socket清空接收缓冲区_Python网络编程——修改套接字发送和接收的缓冲区大小...

    很多情况下,默认的套接字缓冲区大小可能不够用.此时,可以将默认的套接字缓冲区大小改成一个更合适的值. 1. 代码 # ! /usr/bin/env python # -*- coding: utf-8 ...

  6. LFI(本地文件包含)、RFI(远程文件包含)、PHP封装协议(伪协议)安全问题学习

    友情链接:https://www.cnblogs.com/LittleHann/p/3665062.html 目录 一.文件包含的基本概念 1.要想成功利用文件包含漏洞,需要满足下面的条件 (1)in ...

  7. LFI、RFI、PHP封装协议安全问题学习

    本文希望分享一些本地文件包含.远程文件包含.PHP的封装协议(伪协议)中可能包含的漏洞 相关学习资料 http://www.ibm.com/developerworks/cn/java/j-lo-lo ...

  8. GO小知识之实例演示 json 如何转化为 map 和 struct

    今天简单谈一些 JSON 数据处理的小知识.近期工作中,因为要把数据库数据实时更新到 elasticsearch,在实践过程中遇到了一些 JSON 数据处理的问题. 实时数据 实时数据获取是通过阿里开 ...

  9. [C/C++基础知识] 面试再谈struct和union大小问题

    最近找工作参加了很多笔试,其中考察结构体和联合体的大小问题是经常出现的一个问题.虽然题目简单而且分值比较低,但是还是想再给大家回顾下这些C和C++的基础知识.希望文章对你有所帮助~         P ...

  10. flask json传输失败_GO小知识之实例演示 json 如何转化为 map 和 struct

    简单谈一些 JSON 数据处理的小知识.近期工作中,因为要把数据库数据实时更新到 elasticsearch,在实践过程中遇到了一些 JSON 数据处理的问题. 实时数据 实时数据获取是通过阿里开源的 ...

最新文章

  1. 在Ubuntu上安装Odoo 11(企业版)
  2. 通俗易懂----尾递归
  3. 账单比较java代码_Java代码比较两个文件的MD5
  4. 如何使用通用Mapper
  5. linux服务器管理书籍,linux服务器管理
  6. 高端智能阿里手机 黑色 ZOPO C2 出售1499
  7. mysql caching_Spring Caching抽象和Google Guava Cache
  8. java 关注公众号没有调接口_高频面试题:接口和抽象类的区别
  9. 离开载具_绝地最强载具登场?
  10. 7-10 先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数 (10 分)
  11. 20171001~08总结
  12. 联想Y50更换固态硬盘
  13. ARRI阿莱MXF修复方法
  14. Beta冲刺-用户测试报告
  15. hashMap底层原理
  16. 哈尔滨工业大学-计算机系统大作业-程序人生
  17. TKG 1.5.1 的 BYOH 集群部署
  18. 携程开源的分布式apollo技术,不吃透都对不起自己
  19. 周鸿祎带头,十家安全公司接受了这些尖锐拷问
  20. QT-学生信息管理系统

热门文章

  1. Apache Flink Meetup · 北京站,1.13 新版本 x 互娱实践分享的开发者盛筵!
  2. 阿里巴巴大规模应用 Flink 的实战经验:常见问题诊断思路
  3. getvalue函数怎么使用_单片机基础 —— 使用ADC读取电压值
  4. 接收xml参数_如何解决SpringMVC接收到的请求参数为乱码的问题
  5. 怎么查询sybase money列数据长度_用PBI分析上市公司财务数据(一)
  6. jQuery.ajax(解决跨域问题,jquery解决AJAX跨域问题
  7. linux工程常用的应用命令总结:
  8. 帆软扩展单元格运算的相关应用
  9. python open 编码格式_Python以unicode编码格式读入外部文件
  10. win7动态壁纸_电脑桌面美化,高清动态壁纸