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

© xiabingxiejiang 中级黑马   /  2013-8-14 23:01  /  2151 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

他们都能定义那些属性,什么时候用结构,什么时候用类?

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

5 个回复

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

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
类:类是引用类型在堆上分配,类的实例进行赋值只是复制了引用,都指向同一段实际对象分配的内存,类有构造和析构函数,类可以继承和被继承;结构:结构是值类型在栈上分配(虽然栈的访问速度比较堆要快,但栈的资源有限放),结构的赋值将分配产生一个新的对象,结构没有构造函数,但可以添加。结构没有析构函数,结构不可以继承自另一个结构或被继承,但和类一样可以继承自接口。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
struct只封装了数据,没有封装方法,class既封装了数据又封装了方法。由于struct是在栈上自动分配的,在某些使用场合可能要注意内存对齐等问题。
回复 使用道具 举报
结构是一种将有关数据打包到一起的机制,类似于数据库中的一条记录,相对于松散的数据是一种进步。但是结构并不能完善的表达面向对象的思想,他只能描述对象的性质如姓名,年龄等而无法描述对象的行为如行走,说话。而类则可以包含这些特征,也就是常说的类中可以包含成员变量(对象的性质)和成员函数(对象的行为)。此外,类还具有继承和多态的属性,实现了对象的繁衍。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

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