既然把这俩拿来比较说明他俩肯定是有共同点和不同点的
首先来看他俩的
共同点
可以把他俩看成一个容器,都可以将多个数据封装成一个整体,打个比较,就好比篮子和水桶的区别,相同点就是都可以盛东西,不过就是盛的东西不一样
不同点
1、结构体只能封装数据 类可以封装行为
2、结构体在内存中存在于栈上, 类对象存放于堆中
3、结构体的赋值是copy, 类对象的赋值是地址赋值
4、类属性可以是结构体, 结构体里的数据不可能是类,并且类具有继承特性
应用场景
1、如果封装的不仅有数据还有方法, 只能使用类
2、如果只有属性没有方法,这种情况又可以分为两种情况
2.1-如果属性比较少,就定义为结构体,前面说过结构体在内
存中是放在栈中的,方便高效调用
2.2-如果属性比较多,就不要定义为结构体了,因为这样的结
构体定义出来会在栈中占用较大的内存空间,反而影响效率
网友评论