黑马程序员技术交流社区

标题: C语言中的结构体与面向对象中的简单类的本质区别.... [打印本页]

作者: 董月峰    时间: 2014-4-9 13:13
标题: C语言中的结构体与面向对象中的简单类的本质区别....
我个人目前只理解到:
C中的结构体和数组一样是 构造类型,结构体 中可有不同类型的属性
而面向对象中的  简单的不含方法的类
其中也可以定义不同类型的属性【虽然也可以声明方法,但是简单的类一般不含方法】

那结构体体  与  简单的类的 本质区别又在哪儿呢?
求大神解惑
作者: cnchenys    时间: 2014-4-9 13:14
结构体里面只定义了基本类型或者引用类型,类里面不仅可以定义基本类型或者引用类型,还可以申明和实现方法
作者: 一只小菜鸟    时间: 2014-4-9 13:16
本帖最后由 一只小菜鸟 于 2014-4-9 13:37 编辑

类中除了数据类型外,面向对象默认都有一个构造方法的吧~
作者: Max_骏    时间: 2014-4-9 14:53
结构体是由不同数据类型组织在一起而构成的一种数据类型,因而一个结构体有多个数据项,每个数据项的类型可不相同。结构体就像一种粘合剂,将事物之间的关系很好地组合在了一起。
而类是一组具有相同(特征)属性和行为(功能)的事物的集合(抽象)。对象就是类的具体实现。类其实就是一种数据类型,它的变量就是对象。
作者: 那个Mr_Z    时间: 2014-4-9 22:10
结构没有无参构造函数
结构不能被继承
结构是值类型,而类是引用类型
结构在数据参数方面效率更高,简单数组的应用中成本很低
类在方法运算方面更有优势,在抽象多级别时最佳选择
语法区别:
结构体内成员的属性默认是 public 而 class 是默认为 private
应用区别:
结构体不能继承,派生,而 class 可以
作者: 程浩    时间: 2014-4-10 00:01
要说本质区别:

1.结构体和int double一样,属于基本数据类

2.结构体是值类型类是引用类型
因为结构是值类型所以结构之间的赋值可以创建新的结构,
而类是引用类型,类之间的赋值只是复制引用,
通俗一点,class里可以有结构体,而结构体里面只能有数据


3.值类型在堆栈上分配地址引用类型在堆上分配地址
堆栈的执行效率要比堆的执行效率高,可是堆栈的资源有限,不适合处理大的逻辑复杂的对象。
所以结构处理作为基类型对待的小对象,而类处理某个商业逻辑


作者: agelessman    时间: 2014-4-10 11:16
人家国外的书上就把类称为一种特别的结构体




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2