struct (C++)

Le struct mot clé définit un type de structure et/ou une variable d’un type de structure.

Syntaxe

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

Paramètres

template-spec
Spécifications de modèle facultatives. Pour plus d’informations, reportez-vous aux spécifications de modèle.

struct
Le mot clé struct.

ms-decl-spec
Spécification de classe de stockage facultative. Pour plus d’informations, reportez-vous au mot clé __declspec.

tag
Nom de type donné à la structure. La balise devient un mot réservé dans la portée de la structure. La balise est facultative. Si elle est omise, une structure anonyme est définie. Pour plus d’informations, consultez Types de classes anonymes.

base-list
Liste facultative des classes ou structures dont dérivent les membres de cette structure. Pour plus d’informations, consultez Classes de base. Chaque classe de base ou nom de structure peut être précédé d’un spécificateur d’accès (public, privé, protégé) et du mot clé virtuel. Pour plus d’informations, consultez la table d’accès aux membres d’accès aux membres de la classe.

member-list
Liste des membres de structure. Pour plus d’informations, reportez-vous à la vue d’ensemble des membres de la classe. La seule différence ici est celle utilisée struct à la place de class.

declarators
Liste de déclarateurs spécifiant les noms de la structure. Les listes des déclarateurs déclarent une ou plusieurs instances du type structure. Les déclarateurs peuvent inclure des listes d’initialiseurs si tous les membres de données de la structure sont public. Les listes d’initialiseurs sont courantes dans les structures, car les membres de données sont public par défaut. Pour plus d’informations, consultez Vue d’ensemble des déclarateurs .

Notes

Un type structure est un type composite défini par l'utilisateur. Il comprend des champs ou des membres qui peuvent avoir différents types.

En C++, une structure est identique à une classe, sauf que ses membres sont public par défaut.

Pour plus d’informations sur les classes managées et les structs dans C++/CLI, consultez Classes et Structs.

Utilisation d'une structure

En C, vous devez utiliser explicitement l’mot clé struct pour déclarer une structure. En C++, vous n’avez pas besoin d’utiliser le struct mot clé une fois le type défini.

Vous avez la possibilité de déclarer des variables lorsque le type de structure est défini en plaçant un ou plusieurs noms de variables séparés par des virgules entre l'accolade fermante et le point-virgule.

Les variables de structure peuvent être initialisées. L'initialisation de chaque variable doit être placée entre accolades.

Pour plus d’informations, consultez la classe, l’union et l’énumération.

Exemple

#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