当前位置: 首页 > 文档资料 > C++大学教程 >

6.2 结构定义

优质
小牛编辑
113浏览
2023-12-01

结构是用其他类型的元素建立的聚合数据类型。考虑下列结构定义:

struct Time {
int hour; // 0-23
int minute; // 0-59
int second; // 0-59
};

结构定义用关键字 struct 引入。标识符 Time 是个结构标志(structure tag),命名结构定义并声明该结构类型(structure type)的变量。本例中,新类型名为 Time 。结构定义花括号中声明的名称是结构的成员(member)。同一结构的成员应有惟一名称.但两个不同结构可以包含同名成员而不会发生冲突。每个结构定义应以分号结尾。上述解释对后面要介绍的类也适用,C++ 中的结构和类是非常相似的。

Time 的定义包含三个 int 类型的成员 hour、minute 和 second。结构成员可以是任何类型,一个结构可以包含不同类型的成员。但是,结构不能包含自身的实例。例如,Time 类型的成员不能在Time的结构定义中声明,但该结构定义中可以包含另一 Time 结构的指针。当结构包含同一类型结构的指针时,称为自引用结构(self-referential structure)。自引用结构用于形成链接数据结构,如链表、队列、堆栈和树等(见第15章介绍)。

上述结构定义并没有在内存中保留任何空间,而是生成新的数据类型,用于声明变量。结构变量和其他类型的变量一样声明。下列声明:

Time timeObject,timeArray[10] ,*timePtr.
&timeRef=timeobject;

声明 timeObjectTime 类型变量, timeArray 为10个 Time 类型元素的数组, timePtrTime 对象的指针, timeRefTime 对象的引用(用 timeObject 初始化)。