黑马程序员技术交流社区
标题:
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