黑马程序员技术交流社区

标题: 类和结构有什么区别 [打印本页]

作者: 咖喱猫    时间: 2013-8-12 11:15
标题: 类和结构有什么区别
本帖最后由 咖喱猫 于 2013-8-13 18:41 编辑

话说,这个类经常用,已经不陌生了,但是这个结构就感觉不会用,有些陌生,什么时候该用结构?
作者: xt654005440    时间: 2013-8-12 11:29
这里有一篇技术blog可以看看:http://www.cnblogs.com/siri/archive/2012/10/31/2748559.html
这里是一篇学习笔记:http://hi.baidu.com/oulyzarcihsow/item/0419350997e5a23d4ac4a382
学习别人的经验,会对自己有很大帮助的。
作者: 高文咪    时间: 2013-8-12 16:16
结构体比较轻量级,在传输数据的时候是copy数据,而不是如类一样给引用,所以不需要担心资源释放。同时结构没有多态特性,所以在调用方法的时候性能会更好。
结构是值类型,在分配内存的时候,速度非常快,因为他们将内联或者保存到堆栈中,在结构超出作用域被删除里,速度也很快。但当结构作为参数被传递或者把一个结构赋值给另一个结构,结构的所有内容都会被复制,性能影响就会较大。而对于类,只复制引用。struct 类型适于表示 Point、Rectangle 和 Color 等轻量对象。尽管可以将一个点表示为类,但在某些情况下,使用结构更有效。
如果使用 new 运算符创建结构对象,则会创建该结构对象,并调用适当的构造函数。与类不同,结构的实例化可以不使用 new 运算符。如果不使用 new,则在初始化所有字段之前,字段都保持未赋值状态且对象不可用。
结构可实现接口,其方式同类完全一样。

作者: 咖喱猫    时间: 2013-8-13 11:10
xt654005440 发表于 2013-8-12 11:29
这里有一篇技术blog可以看看:http://www.cnblogs.com/siri/archive/2012/10/31/2748559.html
这里是一篇学 ...

谢谢分享~~
作者: 咖喱猫    时间: 2013-8-13 11:10
高文咪 发表于 2013-8-12 16:16
结构体比较轻量级,在传输数据的时候是copy数据,而不是如类一样给引用,所以不需要担心资源释放。同时结构 ...

谢谢哈~~~




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