网上有关“类和结构的区别”话题很是火热,小编也是针对类和结构的区别寻找了一些与之相关的一些信息进行分析 ,如果能碰巧解决你现在面临的问题,希望能够帮助到您 。
1、存储类型:结构是值类型,存储在栈上。类是引用类型,存储在栈上和堆上 ,堆上存储真实数据,栈上存储存储地址,修改一个引用的值 ,另一个相同的引用的值就会发生改变。
2 、继承性:类是可以继承的,它可以继承其他的类或者接口,也可以被继承 ,并且,类的许多特性是通过继承来展现的,要阻止类的继承 ,必须显示的声明sealed。结构没有继承:它不能继承另一个结构或者类,也不能被继承 。也正因为如此,结构不能有抽象成员。虽然结构没有明确的用sealed声明 ,可是结构是隐式的。结构能够继承接口,方法和类继承接口是一样的 。
3、初始化:类可以在声明的时候初始化,结构不能在申明的时候初始化(不能在结构中初始化字段),否则报错。
4、构造函数:类和结构都有自己默认的构造函数。在类中 ,一旦我们编写了带参数构造函数,默认构造函数就不存在了 。当我们要调用不带参数的构造函数来初始化对象时,我们必须再自己编写一个不带参数的构造函数。但是在结构中 ,始终存在一个不带参数的默认构造函数,并且,这个构造函数是不可替代的 ,不能重写,也不能覆盖,在结构中 ,我们只能编写带参数的构造函数,不能编写不带参数的构造函数。
5、析构函数:类有析构函数,但是结构没有析构函数 。
6 、关键字:在类中可以使用但是在结构中限制使用的关键字有:abstract、sealed、protected;StaTIc关键字可以用在类名前面用来声明静态类 ,但是不能用在struct前面,不存在静态结构。
扩展资料
使用说明
结构存储在栈中,而栈有1个特点,就是空间较小 ,但是访问速度较快,堆空间较大,但是访问速度相对较慢。所以当我们描述1个轻量级对象的时候 ,可以将其定义为结构来提高效率 。比如点,矩形,颜色 ,这些对象是轻量级的对象,因为描述他们,只需要少量的字段。当描述1个重量级对象的时候 ,我们知道类的对象是存储在堆空间中的,我们就将重量级对象定义为类。 他们都表示可以包含数据成员和函数成员的数据结构。
与类不同的是,结构是值类型并且不需要堆分配 。结构类型的变量直接包含结构的数据 ,而类类型的变量包含对数据的引用(该变量称为对象)。 struct 类型适合表示如点 、矩形和颜色这样的轻量对象。尽管可能将一个点表示为类,但结构在某些方案中更有效 。在一些情况下,结构的成本较低。例如,如果声明一个含有 1000 个点对象的数组 ,则将为引用每个对象分配附加的内存。所以结构适合表示1个轻量级对象 。
参考资料百度百科-类
相同之处: 可用来宣告变量
相异之处: 其目的与范畴不同
C语言中的数据类型, 就如同最基础的文具用品一般. 铅笔, 橡皮擦类似基础型别, 可代表不同的厂牌尺寸规格的实物.
数据结构, 就如同一个铅笔盒或书包, 可以容纳多种文具用品於一身. 拿著铅笔盒相当於带著一整组文具.
当要运用个别文具的功能时, 使用铅笔, 使用橡皮擦为单位.
当药用运整组整包的文具时, 使用铅笔盒, 书包为单位.
例如:
* 要写字时用铅笔, 要清除笔迹用橡皮擦;
* 但是要出门时, 会说记得带书包.
通常不会在临出门时, 要带铅笔, 要带橡皮擦, ..... , 一样一样的说, 而以一个书包或铅笔盒为一组, 一套, 一个单位.
这在程序的设计上也是如此, 透过适当的数据结构安排, 可以将不同的基础数据类型, 包裹成一个抽象的, 拟真的概念. 这样对於设计来说, 能够大幅度的减少复杂度, 降低难度. 高阶设计时, 可从书包或铅笔盒的角度考虑, 低阶设计, 从铅笔盒中的铅笔, 橡皮擦的角度来考虑.
关于“类和结构的区别 ”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[张明轩]投稿,不代表吾尔凌立场,如若转载,请注明出处:https://kino520.cn/zlan/202510-31087.html
评论列表(3条)
我是吾尔凌的签约作者“张明轩”
本文概览:网上有关“类和结构的区别”话题很是火热,小编也是针对类和结构的区别寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1、存储类型:结构是值...
文章不错《类和结构的区别》内容很有帮助