结构体与类的区别

C++面向对象中,结构体与类的区别    
结构体(struct) 类(class)
析构函数 不支持 支持
构造函数 支持,结构体中的构造函数的作用是:将其中的成员初始化置零 支持,类中的构造函数可以自定义函数内容
类型 结构体是值类型 类是引用类型
使用

值类型用于存储数据的值

结构体就是当成值来使用的

引用类型用于存储对实际数据的引用

类则通过引用来对实际数据操作

存储
栈存储 堆存储
访问/效率

栈的空间相对较小.但是存储在栈中的数据访问效率相对较高,栈由系统自动分配,速度较快。但程序员是无法控制的。

堆的空间相对较大.但是存储在堆中的数据的访问效率相对较低,堆是由new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来最方便。

选择对象/效率

堆栈的执行效率要比堆的执行效率高,可是堆栈的资源有限,不适合处理大的逻辑复杂的对象。

用结构体处理作为基类型对待的小对象

用类处理某个较大较抽象的对象

继承
不支持 支持,实现代码复用
变量初始化
不支持,声明时初始化就会报错 支持
成员的默认访问权限
默认public
不做声明时,默认private(私有)
包含属性 数据类型对象 过程,函数,数据类型对象
修改 结构体是值类型,所以对结构体变量所做的改变不会影响其的原值 类是引用类型,改变其变量的值会改变其原值。
结构体和类都是提供了数据的封装和构造


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值