黑马程序员技术交流社区

标题: Struct和class区别? [打印本页]

作者: 邬长星    时间: 2014-1-22 21:37
标题: Struct和class区别?
本帖最后由 邬长星 于 2014-1-23 09:07 编辑

Struct和class区别?
作者: j6495345    时间: 2014-1-23 00:08
struct是结构它是值类型,class是类,它可以new出来一个对象
作者: 王忠杰    时间: 2014-1-23 13:37

类的成员都要事先指定访问权限,结构体中的变量都可以随意访问;
类可以重载操作符、函数,结构体不行;
类可以继承,结构体不行;
类中可以定义虚函数,结构体不行。
类有构造和析构函数可以在对象生成或释放自动调用,结构体要做这些工作就得自己来了。
还有什么不同可以看看楼下还有什么意见。
作者: wushanwow    时间: 2014-1-24 10:37
struct是类的常用精简版
作者: yuanlianxi03    时间: 2014-1-25 01:23
结构与类共享大多数相同的语法,但结构比类受到的限制更多:

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

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

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

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

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

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

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

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

结构可以实现接口。

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

结构中不能声明用virtual修饰的方法,因为结构不允许继承和被继承,所以多态对于值类型没有意义





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