Freigeben über


struct (C++)

Das struct Schlüsselwort definiert einen Strukturtyp und/oder eine Variable eines Strukturtyps.

Syntax

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

Parameter

Vorlagenspezifikation
Optionale Vorlagenspezifikationen. Weitere Informationen finden Sie unter Vorlagenspezifikationen.

struct
das Schlüsselwort struct.

ms-decl-spec
Optionale Speicherklassenspezifikation. Weitere Informationen finden Sie im schlüsselwort __declspec .

tag
Der Typname, der für die Struktur angegeben wurde. Das Tag wird ein reserviertes Wort innerhalb des Gültigkeitsbereichs der Struktur. Das Tag ist optional. Wenn es nicht angegeben wird, wird eine anonyme Struktur definiert. Weitere Informationen finden Sie unter Anonyme Klassentypen.

base-list
Optionale Liste von Klassen oder Strukturen, von denen diese Struktur ihre Member ableitet. Weitere Informationen finden Sie unter "Basisklassen ". Jedem Basisklassen- oder Strukturnamen kann ein Zugriffsbezeichner (öffentlich, privat, geschützt) und das virtuelle Schlüsselwort vorangestellt werden. Weitere Informationen finden Sie in der Memberzugriffstabelle unter Steuern des Zugriffs auf Klassenmember .

Mitgliedsliste
Liste der Strukturmember. Weitere Informationen finden Sie unter "Class Member Overview ". Der einzige Unterschied hier ist, dass struct anstelle von class.

declarators
Deklaratorliste, die die Namen der Struktur angibt. Deklaratorlisten deklarieren eine oder mehrere Instanzen des Strukturtyps. Deklaratoren können Initialisierungslisten enthalten, wenn alle Datenmmber der Struktur sind public. Initialisierungslisten sind in Strukturen üblich, da Datenmmber standardmäßig vorhanden sind public . Weitere Informationen finden Sie unter "Übersicht über Deklaratoren ".

Hinweise

Ein Strukturtyp ist ein benutzerdefinierter zusammengesetzter Typ. Er setzt sich aus Feldern oder Membern zusammen, die unterschiedliche Typen aufweisen können.

In C++ ist eine Struktur identisch mit einer Klasse, mit der Ausnahme, dass die Member standardmäßig vorhanden sind public .

Informationen zu verwalteten Klassen und Anweisungen in C++/CLI finden Sie unter Klassen und Strukturen.

Verwenden einer Struktur

In C müssen Sie das struct Schlüsselwort explizit verwenden, um eine Struktur zu deklarieren. In C++ müssen Sie das struct Schlüsselwort nicht verwenden, nachdem der Typ definiert wurde.

Sie können Variablen deklarieren, wenn der Strukturtyp so definiert wurde, dass mindestens ein durch Trennzeichen getrennter Variablenname zwischen schließender Klammer und Semikolon steht.

Strukturvariablen können initialisiert werden. Die Initialisierung für jede Variable muss in Klammern eingeschlossen sein.

Verwandte Informationen finden Sie unter Klasse, Vereinigung und Enumeration.

Beispiel

#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