结构与类的区别

本文详细对比了编程中结构与类的定义、构造函数、成员变量赋值等方面的不同,并总结了结构作为值类型与类作为引用类型的主要区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传说中的结构与类

在高级语言编程里面我们都知道数据存储结构有多种,比如单个的简单数据类型int、string、char,或则是使用数组存储多个具有相同数据类型和语义的数据信息。但是在实际操作中我们操作的数据类型有很多,用以上两种很多难于解决,于是就引出了今天要讲的传说中的结构。说到结构我们脑海中是不是有一个“类”的概念在飘,没错结构和类十分的相似,结构和类一样可以包含数据和方法的定义,可以包含构造函数、常量、变量、方法、属性等等。但是它们也存在这些许不同,包括用法、定义以及数据类型各个方面。

结构与类的不同

1.结构的定义

1     [修饰符] struct [结构名] [ : 接口名]
2     {
3         //结构成员
4     }

2.结构的构造函数

1     public struct Test
2     {
3         public Test()
4         {
5             //此方法编译不会通过,提示错误消息“结构不能包含显示的无参数构造函数”
6         }
7     }

3.结构的成员变量赋值

1 struct Test
2     {
3         static int x = 1;
4         static int y = x + 5;
5         //以下两句编译错误,在结构中可以给结构的静态变量赋初值,但不允许给结构的一个实例变量赋初值
6         int m = 2;
7         int n = m + 2;
8     }

3.创建对象的方法

  • 使用new运算符来创建结构对象
  • 直接用结构类型的变量来创建结构对象

4.继承

  • 不允许结构从另外一个结构或类继承

总结

  • 结构是一种值数据类型,而类是一种引用类型
  • 在结构中不允许定义无参数的构造函数(编译不会通过)
  • 在结构中可以给结构的静态变量赋初值,但不能给结构的一个实例变量赋初值
  • 创建结构对象可以不使用new关键字,直接用结构类型的变量来创建
  • 不允许继承(可以将结构看成是密封的类)

  PS:在实际的应用中,如果数据成员占用的内存不超过16个字节,使用结构;否则考虑使用其它,包括类。(这句是我在百度copy来的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值