结构体和类的差异对比
2023-04-18 15:28:18 时间
结构体和类的对比
结构体的关键字为struct,常用来进行封装同属性的成员变量(它也可以用来封装函数,但是多数不会进行函数封装操作)
类则对应C++中面向对象的概念,完美阐述了面向对象的三大特性:封装、继承、多肽。它的关键字为class,常用来封装成员函数和成员变量。
不同点
1、关键字使用不同,结构体为struct,类为class
2、访问修饰符不同,结构体只有public和private;类则多一个protect
3、默认的访问安全系数不同,结构体中若没有定义public和private,则默认为public;类中则默认为private
4、继承性,结构体没有继承概念;类可继承父类
5、多肽性,结构体没有多肽性;类则存在多肽性
6、构造函数的不同,结构体需要在构造函数中初始化所有成员变量;类则随意,因为构造函数的重构性导致的
7、还有多种关于面向对象方面的类都存在,而结构体不存在,大家可以仔细研读面向对象的三要素,就会发现更多的不同(析构函数,static修饰符,存储位置等等)
相同点
1、都可以用来封装成员变量和函数
2、都存在构造函数并对成员变量进行初始化
如何考虑使用类还是结构体
1、如果有明显的面向对象概念时,果断选择类
2、如果单纯用来定义成员属性时,区分属性的归属:对象为数据集合采用结构体,对象属性有明显的层次概念使用类
3、从使用的场景上来看,时长需要被赋值传递的对象,多用来进行深度拷贝的时候采用结构体
e.g 视频观看请点击如下
联系
QQ群:820191434
微信:anlg_study
B站:https://space.bilibili.com/3493080139303853?spm_id_from=333.999.0.0
商城:研发中......
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击