C++结构、共用体、枚举

一、结构

结构是C++OOP的基石。学习有关结构的知识僵尸我们离C++的核心OOP更近。

结构是用户定义的类型,同一个结构可以存储多种类型数据,这使得将一个事物的不同属性构成一个对象成为了可能。另外C++结构除了成员变量之外,还可以有成员函数。但一般不这样用,而是在类中定义。

结构的声明:

struct people{

char name[20];

float volume;

double price;

};

结构的初始化: people jason = { “jason”,1.88,29.99};

二、共用体

共用体(union)是一种数据格式,它能够存储不能的数据类型,但在同一时间只能存储一种数据类型。

union id

{

long id_num;

char id_char[20];

};

如上声明代码,编号id有的是整数,而有的是字符串,这是我们用共用体就能解决编号类型不同的问题。

拓展:共用体常用语节省内存。但当前系统的内存都是GB级的甚至是TB级的,好像没有必要为此节省内存,但并非所有的C++程序都是为这样的系统编写的。C++还用于嵌入式开发,比如控制烤箱、MP3播放器等等。对于这些应用来说,内存往往是非常珍贵的。另外,公用体常用语操作系统数据结构或硬件数据结构。

三、枚举

C++的enum工具提供了另一种创建符号常量的方式,这种方式可以代替const。它还允许定义新类型,但必须按严格的限定进行。

enum color { read,orang,yellow,green,blue,violet,indigo,ultraviolet};其中值分别为0-7。

枚举只定义了赋值运算符。可以将枚举类型转为整形,但可以将整形强制类型转换为枚举。如果要赋值,还要看是否超过枚举(color)的边界,如果赋值超过边界则不会出错,但这样做无意义。

拓展:枚举的规则相当严格。枚举更常用来定义相关的符号常量,而不是新的类型。例如,可以使用枚举来定义switch语句中使用的符号常量。如果只打算使用常量,这可以省略枚举类型的名称,格式如下:

enum { read,orang,yellow,green,blue,violet,indigo,ultraviolet};

上一篇:三、Linux系统中的文件类型和文件扩展名


下一篇:spring-cloud-Zuul学习(一)【基础篇】--入门案例【重新定义spring cloud实践】