一、两者区别
class和struct都是用来存储多个变量的,两者的用法的差不多,但存在一下区别:
1.class是引用类型,而struct是值类型。
3.class中默认的成员访问权限是private的,而struct中则是public的。
二、struct
struct是一种结构体,也可以看作是一个数据结构.struct可以用来储存多个变量,最常用的场景就是给你一些学生的基本信息,如姓名,学号,成绩等。让你选出最优秀的学生或给他们排名。这个时候,我们就需要用一种结构来存储每个学生的所有信息,struct就满足这样的条件,也就是说,一个结构体里面可以装下很多个变量。那么,你可能会问,难不成我们要定义很多个结构体来储存变量吗?答案不是的,因为没定义一个结构体,就可以装下很多份资料,但前提是这几份资料的类型一定要相同,就像double不能取余一样。那么,问题又来了,那就是如果我需要存储类型不同的变量,就需要很多的结构体,这个时候,电脑怎么辨别我想用的是哪一个结构体呢?这就引出了结构体的名字,也就是这样:
如图,这是定义的一个结构体,student就是他的名字,但是这个名字的作用并不是很大(当然也并不是没有作用,你不能定义两个名字相同的结构体,不然会Error的),因为在用的时候,我们并不能说名为student的结构体,所以我们还要给结构体定义一个新的标识符,来辨别结构体,如下图的n:
在struct里面,如果你想用这个结构体操作,就必须加上这个结构体的“标识符”,类似于下标,不过在结构体里面,没有a[i]这种说法,只能写成n.ch,他的意思为:在n结构体里的ch变量,如果我想用j结构体里的math变量,就要写成j.math。讲到这里,结构体的定义方法也已经展示出来了:
就像这样。细心的读者可能又发现了,在这个结构体里面,还出现了一个名为ans的标识符,它是用来储存我们所想要的数据了,用一道题做例子:
洛谷【深基7.例9】最厉害的学生
现有 N N N 名同学参加了期末考试,并且获得了每名同学的信息:姓名(不超过 8 8 8 个字符的仅有英文小写字母的字符串)、语文、数学、英语成绩(均为不超过 150 150