struct (C++)

struct关键字定义结构类型和/或结构类型的变量。

语法

[template-spec] struct [ms-decl-spec] [tag [: base-list ]]
{
   member-list
} [declarators];
[struct] tag declarators;

参数

template-规范
可选模板规范。 有关详细信息,请参阅 模板规范

struct
struct 关键字。

decl-规范
可选存储类规范。 有关详细信息,请参阅 __declspec 关键字。

标记
为结构提供的类型名称。 标记将变成结构范围内的保留字。 标记是可选项。 如果省略,则定义匿名结构。 有关详细信息,请参阅 匿名类类型

base-list
此结构将从中派生其成员的类或结构的可选列表。 有关详细信息,请参阅 基类 。 每个基类或结构名称的前面可以有一个访问说明符 (publicprivateprotected) 和 virtual 关键字。 有关详细信息,请参阅 控制对类成员的访问 中的成员访问表。

成员列表
结构成员列表。 有关详细信息,请参阅 类成员概述 。 此处的唯一区别在于, struct 用于代替 class

声明符
指定结构名称的声明符列表。 声明符列表声明了一个或多个结构类型实例。 如果结构的所有数据成员都为,则声明符可以包含初始值设定项列表 public 。 初始值设定项列表在结构中很常见,因为 public 默认情况下数据成员为。 有关详细信息,请参阅 声明符的概述

注解

结构类型是用户定义的复合类型。 它由可具有不同类型的字段或成员构成。

在 c + + 中,结构与类相同,不同之处在于其成员 public 默认为。

有关 c + +/CLI 中的托管类和结构的信息,请参阅 类和结构

使用结构

在 C 中,必须显式使用 struct 关键字来声明结构。 在 c + + 中,不需要在 struct 定义类型后使用关键字。

可以选择在定义结构类型时,通过在右大括号和分号之间放置一个或多个逗号分隔的变量名称来声明变量。

可以初始化结构变量。 每个变量的初始化必须括在大括号中。

有关相关信息,请参阅 联合枚举

示例

#include <iostream>
using namespace std;

struct PERSON {   // Declare PERSON struct type
    int age;   // Declare member types
    long ss;
    float weight;
    char name[25];
} family_member;   // Define object of type PERSON

struct CELL {   // Declare CELL bit field
    unsigned short character  : 8;  // 00000000 ????????
    unsigned short foreground : 3;  // 00000??? 00000000
    unsigned short intensity  : 1;  // 0000?000 00000000
    unsigned short background : 3;  // 0???0000 00000000
    unsigned short blink      : 1;  // ?0000000 00000000
} screen[25][80];       // Array of bit fields

int main() {
    struct PERSON sister;   // C style structure declaration
    PERSON brother;   // C++ style structure declaration
    sister.age = 13;   // assign values to members
    brother.age = 7;
    cout << "sister.age = " << sister.age << '\n';
    cout << "brother.age = " << brother.age << '\n';

    CELL my_cell;
    my_cell.character = 1;
    cout << "my_cell.character = " << my_cell.character;
}
// Output:
// sister.age = 13
// brother.age = 7
// my_cell.character = 1