struct和class异同

struct 和 class的异同函数

 

一图理解struct和class的异同spa

1 相同点对象

A struct和class是同一等级的,属于命名空间下blog

B 能够定义字段、属性、方法、构造器等继承

C 有默认的无参构造方法接口

 

2 不一样点class

A 定义语法关键字不一样(struct class)命名空间

B struct是值类型,class是引用类型,struct存储在栈中,但其中定义的引用类型是存储在堆中的构造函数

C struct中字段不能赋初始值,class中字段没有影响语法

D struct不能定义无参数的构造方法,且在有参构造函数中必须为全部字段和属性赋值

E struct中有参构造方法不会覆盖默认的无参构造方法,便可以new无参的结构,class中有参构造方法会覆盖默认的无参构造方法,

即没法调用默认无参构造方法,所以在class中最好定义一个无参构造方法,防止new建立对象失败。

F 结构不能定义析构方法,class能够

G struct能够继承接口不能够继承class,class既能够继承接口,又能够继承class

3 适用状况

struct是一种特殊的值类型,栈的空间小,访问速度快,struct适用于字段、属性较少,

做为一种组合类型使用,class做为一种面向对象拓展的类型使用。

相关文章
相关标签/搜索