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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邬长星 中级黑马   /  2014-1-22 21:37  /  1176 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邬长星 于 2014-1-23 09:07 编辑

Struct和class区别?

评分

参与人数 1技术分 +1 收起 理由
卖火柴 + 1 赞一个!

查看全部评分

5 个回复

倒序浏览
struct是结构它是值类型,class是类,它可以new出来一个对象
回复 使用道具 举报

类的成员都要事先指定访问权限,结构体中的变量都可以随意访问;
类可以重载操作符、函数,结构体不行;
类可以继承,结构体不行;
类中可以定义虚函数,结构体不行。
类有构造和析构函数可以在对象生成或释放自动调用,结构体要做这些工作就得自己来了。
还有什么不同可以看看楼下还有什么意见。

点评

结构体的成员访问机制和类中成员的访问机制是一样的,默认私有,如需其他访问,可明确指定;结构体也可以重载操作符、函数,  发表于 2014-1-25 01:19
回复 使用道具 举报 0 1
struct是类的常用精简版
回复 使用道具 举报
结构与类共享大多数相同的语法,但结构比类受到的限制更多:

在结构声明中,除非字段被声明为 const 或 static,否则无法初始化。

结构不能声明默认构造函数(没有参数的构造函数)或析构函数。

结构不能从类或其他结构继承。

结构在赋值时进行复制。将结构赋值给新变量时,将复制所有数据,并且对新副本所做的任何修改不会更改原始副本的数据。

结构是值类型,而类是引用类型。

与类不同,结构的实例化可以不使用 new 运算符。

结构可以声明带参数的构造函数。

一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。

结构可以实现接口。

结构可用作可为 null 的类型,因而可向其赋 null 值。

结构中不能声明用virtual修饰的方法,因为结构不允许继承和被继承,所以多态对于值类型没有意义
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马