在C++中 class 和 struct 本质上一样 可以互用
class的成员默认是private的,struct的成员默认是public的
但一般习惯把成员变量隐藏的用class申明, 成员变量可以公开访问并且比较简单的用struct申明(个人理解是struct是从c来的,在c中就是那么用的)

至于union,不论其内部有多少成员,在任意时刻,只有一个可用,因为所有成员公用的一个地址
例如
union A
{
int a;
float f;
struct ST st;
};
中的三个变量 a,f,st的地址都是一样的,也就是在一起的,
但sizeof(A) 的大小是其中变量最大的一个的大小(不考虑字节对其啥的)
这是因为三个变量在同一地址,所以其大小必须能够满足任意一个变量使用,所以就必须使用最大的那个了

union在很多地方跟struct类似,也可以实现数据函数的封装,但有一些特别的地方。1、一个时点上只有一个成员有值,(换句话说,所有成员使用的是同一块内存)。2、不能做基类,也就没有虚函数。3、不能有静态和引用成员。4、不能嵌套类(实际上是不能拥有具有构造函数、析构函数、赋值操作的成员,如果仅仅是数据封装还是可以的)

最新文章

  1. C和指针 第八章 习题
  2. mac os x 10.10.3 安装protoc
  3. Furatto – 轻量,友好的响应式前端开发框架
  4. 使用Ganglia监控hadoop、hbase
  5. 解决tomcat6部署spring4+mybatisJSP页面产生的500错误,控制台报java.lang.NullPointerException的问题
  6. 《Bluez 》Beta版强势回归!!!
  7. Hadoop学习(3)-- 安装1.x版本
  8. SQL server 2008 Express Edition实现自动备份和自动删除备份
  9. jboss内存查看管理 .
  10. winfrom dataGridView 自定义分页实现
  11. C# 未能加载文件或程序集“MySQLDriverCS..." 错误解决
  12. 【转载】Java 类加载与初始化
  13. C语言_指针和数组的几种访问形式
  14. asp.net core 系列之中间件进阶篇-编写自定义中间件(middleware)
  15. GIT的初级使用
  16. Hadoop项目实战-用户行为分析之应用概述(三)
  17. ps2016新功能
  18. ribbbitMq 教程,详细
  19. url 中需要转义的字符
  20. bzoj 2178

热门文章

  1. Python打开目录下所有文件
  2. 【前端】Html5浏览器缓存 sessionStorage 与 localStorage
  3. jQuery Validate自定义各种验证方法(转)
  4. Android Studio V4 V7 包冲突的问题
  5. android xml中使用include标签
  6. XSS漏洞扫描经验分享
  7. Linux Mini 安装 VMware Tools
  8. Vue 在beaforeCreate时获取data中的数据
  9. Jquery中children与find之间的区别
  10. 主成分分析、因子分析、ICA(未完成)