C++中,什么叫类,结构,联合?
2024-10-21 07:36:40
在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、不能嵌套类(实际上是不能拥有具有构造函数、析构函数、赋值操作的成员,如果仅仅是数据封装还是可以的)
最新文章
- C和指针 第八章 习题
- mac os x 10.10.3 安装protoc
- Furatto – 轻量,友好的响应式前端开发框架
- 使用Ganglia监控hadoop、hbase
- 解决tomcat6部署spring4+mybatisJSP页面产生的500错误,控制台报java.lang.NullPointerException的问题
- 《Bluez 》Beta版强势回归!!!
- Hadoop学习(3)-- 安装1.x版本
- SQL server 2008 Express Edition实现自动备份和自动删除备份
- jboss内存查看管理 .
- winfrom dataGridView 自定义分页实现
- C# 未能加载文件或程序集“MySQLDriverCS..."; 错误解决
- 【转载】Java 类加载与初始化
- C语言_指针和数组的几种访问形式
- asp.net core 系列之中间件进阶篇-编写自定义中间件(middleware)
- GIT的初级使用
- Hadoop项目实战-用户行为分析之应用概述(三)
- ps2016新功能
- ribbbitMq 教程,详细
- url 中需要转义的字符
- bzoj 2178