自定义的数据类型

来源:互联网 发布:南京邮电大学软件学院 编辑:程序博客网 时间:2024/05/17 21:52

      c++中有一种数据类型称为枚举(Enumeration)类型,它允许用户自己来定义一种数据类型,并列出该数据类型的取值范围。定义枚举类型的语法格式为: enum 类型名{常量1,[常量2,常量3......常量n]};

      定义枚举常量的位置应该在程序首次使用该类型名之前,否则程序无法识别该类型。枚举类型中列出的常量称为枚举常量,它并不是字符串也不是数值,而只是一些符号。

      如果我们要定义一周7天的日期类型,可以这样写

enum day{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};

这时,程序中就有了一种新的数据类型---day,它的取值范围就是Sunday到Saturday的那7天,把类型设计好以后就能创建一个day类型的变量了

day today;

today=Sunday;

这样day类型的变量today的值就是Sunday了。

 

其实,day类型变量today中保存的是整数,也就是说,一个整数和一个枚举常量一一对应起来,要注意是一一对应而不是相等。但是如果我们把整数直接赋值给today变量,则会发生错误。虽然枚举类型的实质是整数,但电脑还是会仔细检查数据类型,禁止不同类型的数据互相赋值。另外,一般情况下,枚举类型是不能进行算术运算的。


      C++中还有一种数据类型称为结构(Structure)类型,它允许用户自定义一种数据类型,并且把描述该类型的各种数据类型一一整合到其中。把描述该类型的各种数据类型称为这个结构类型的成员数据类型。定义结构类型的语法格式为:

struct 结构类型名

{

      数据类型 成员数据1;

      数据类型 成员数据2;

      数据类型 成员数据3;

      ......

      数据类型 成员数据n;

};

和定义枚举类型类似,定义结构类型的位置必须在首次使用该类型名之前,否则程序将无法识别该类型。要注意,定义完结构类型后的分号是必不可少的,否则将会引起错误。比如定义一个学生类型,可以写作:

struct student

{

      int idNumber;

      char name[15];

      int age;

      char department[20];

      float gpa;

};

这时候就有了一个新的数据类型称为student。我们要用这个类型来定义一个变量并可以依次对它的成员数据进行初始化:

student s1={428004,"Tomato",20,"ComputerScience",84.5};

这样就有了一个student类型的变量s1.如果要引用结构类型内部的数据成员,我们用“.”来操作,称为成员操作符。例如s1.age=22等等。

 

 

原创粉丝点击