2

少儿编程教学认证(少儿编程的等级考试被国家认证吗?对升学有帮助吗)

类和结构体有什么区别?简单地说,类是引用类型,结构体是值类型,一个引用堆,一个指向栈。说细一点的话,类的成员可以定义初始值,类可以被继承以及继承其他类。而结构体的成员如果有一个定义了初始值,那么必须全

类和结构体有什么区别?简单地说,类是引用类型,结构体是值类型,一个引用堆,一个指向栈。说细一点的话,类的成员可以定义初始值,类可以被继承以及继承其他类。而结构体的成员如果有一个定义了初始值,那么必须全部定义初始值,并且结构体也不能被继承!其他方面虽然区别有很多,但真正用起来的时候,感受不是很大。

因为结构体是值类型,所以结构体通常用来定义和传输数据,在这方面相对来说,效率是要高于类的。

以我使用的C#(CSharp)为例,虽然在数据传输以后,对于结构体的序列化和反序列化在结构上跟类并无区别,但是当数据量比较大的时候,结构体的优势就比较明显了!

比如我们需要传一个坐标矩阵,这个坐标矩阵可能是描述图形的。此时,如果这个坐标矩阵的数据量比较大的话,使用结构体传输、读取的速度是要明显优于类的!

为了验证,我特地做了一个实验,我定义了一个类、一个结构体。然后分别给类和结构体赋值,分别获取类和结构体的数据,最后查看它们在赋值和读取值时所消耗的时间有什么不同。

以10万条数据来看,我定义的类在十万次赋值时所消耗的时间大约为160秒左右,而结构体10万次赋值所消耗的时间只有类的一半。而类和结构体在读取这10万条数据时所消耗的时间基本上也就相差0.000几秒左右,也就是在读取速度上,结构体其实就比类的读取速度高那么几毫秒!

因此,我们可以得出一个结论,在大量数据的赋值上,结构体是占优势的!在读取速度上也有优势,只不过只要数据量不是太大,优势并不是太明显。

尽管结构体在数据赋值、读取上占有优势,为什么不干脆使用结构体而需要类呢?

因为结构体有一个天生的劣势,那就是不能被继承!从而无法实现多态!

假设我们在编码的时候,有多个对象都拥有相同的字段、方法的话,使用类的继承则可以解决字段、方法被重复定义的问题。

另外,结构体在某些情况下,比如和C++进行数据互通时,需要指定字符、数组长度,相对来说也比较麻烦。

而如果一方面又要讲究效率,一方面又讲究多态的话,在类的字段中定义结构体是最好不过的了!

#程序员# #编程# #计算机#

本文来自网络,不代表本站立场。转载请注明出处: https://tj.jiuquan.cc/a-2606508/
1
上一篇孩子学创客还是编程比较好(创客少儿编程好不好)
下一篇 成都编程班少儿(成都小学生编程培训哪家好)

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: alzn66@foxmail.com

关注微信

微信扫一扫关注我们

返回顶部