A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© з︶_伱眼裏 中级黑马   /  2013-12-29 22:05  /  1901 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 з︶_伱眼裏 于 2013-12-30 15:02 编辑

结构体和类有什么区别????

评分

参与人数 1技术分 +1 收起 理由
陈福军 + 1

查看全部评分

7 个回复

倒序浏览
1. Struct属于值类型,是分配在内存的栈上的。结构体是复制传递的。
2. Class可以被实例化,属于引用类型,是分配在内存的堆上的,类是引用传递的。

评分

参与人数 1技术分 +1 收起 理由
陈福军 + 1

查看全部评分

回复 使用道具 举报
C++的class跟C的struct区别太多太多,就不一一列举了。

但C++的class和C++的struct之间区别很小,只有两点:
(1)默认的成员访问权限,前者是private,后者是public;
(2)默认的继承权限,来自class的继承默认为private继承,来自struct的继承默认是public继承。

评分

参与人数 1技术分 +2 收起 理由
陈福军 + 2

查看全部评分

回复 使用道具 举报
1、结构体是数值类型,引用另一个的结构信息时是重新开了一个内存空间,一个发生属性改变,另一个不会发生改变。而类是应用类型,当引用另一个结构体成员变量的时候,一个信息发生了改变,另一个信息也将发生改变。
2、可以有构造函数,没有默认的无参构造,但可以调用无参构造函数。
3、没有析构函数
4、可以不适用new实例化
5、没有关键字abstract、protected、sealed修饰符
6、结构体中的数据成员必须都要赋值,如果用new构造一个无参函数,则数据成员会得到一个默认的值。

评分

参与人数 1技术分 +2 收起 理由
陈福军 + 2

查看全部评分

回复 使用道具 举报

1.Struct属于值类型, Class属于引用类型
2.结构不可以被继承,类可以被继承

评分

参与人数 1技术分 +2 收起 理由
陈福军 + 2

查看全部评分

回复 使用道具 举报
1.结构属于值类型,而且不可空,类属于引用类型,可空
2.在分配内存空间时,结构时根据其成员分配,有多少成员分配多少内存,而类不是

评分

参与人数 1技术分 +2 收起 理由
陈福军 + 2

查看全部评分

回复 使用道具 举报
简单的说就是结构体能做的工作,类都能做,但结构体不具有继承、多态性,其实,刚开始理解到这里就行了。。

评分

参与人数 1技术分 +2 收起 理由
陈福军 + 2

查看全部评分

回复 使用道具 举报
结构体是一种值类型,而类是引用类型。(值类型、引用类型是根据数据存储的角度来分的)
就是值类型用于存储数据的值,引用类型用于存储对实际数据的引用。那么结构体就是当成值来使用的,类则通过引用来对实际数据操作。
结构体的定义是:有些数据既是相互关联的,又共同描述一个完整事物,如:一个学生的整体信息,学号、姓名、性别等。而类则使用在需要比较有层次的数据上面。

评分

参与人数 1技术分 +2 收起 理由
陈福军 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马