Freigeben über


struct (C++)

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

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

Parameter

  • template-spec
    Optionale Vorlagenspezifikationen. Weitere Informationen finden Sie unter Vorlagenspezifikationen.

  • struct
    Das struct-Schlüsselwort.

  • ms-decl-spec
    Optionale Speicherklassenspezifikation. Weitere Informationen finden Sie im Zusammenhang mit dem __declspec-Schlüsselwort.

  • 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 Zugriffsspezifizierer (public, private, protected) und das virtual-Schlüsselwort vorangestellt werden. Weitere Informationen finden Sie in der Memberzugriffstabelle unter Steuern des Zugriffs auf Klassenmember.

  • member-list
    Liste der Strukturmember. Weitere Informationen finden Sie unter Klassenmember. Der einzige Unterschied besteht darin, dass struct anstelle von class verwendet wird.

  • declarators
    Deklaratorliste, die die Namen der Klasse angibt. Deklaratorlisten deklarieren eine oder mehrere Instanzen des Strukturtyps. Deklaratoren können Initialisierungslisten enthalten, wenn alle Datenmember der Klasse public sind. Initialisierungslisten werden häufig in Strukturen verwendet, da Datenmember standardmäßig public sind. 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 public sind.

Weitere Informationen über verwaltete Klassen und Strukturen finden Sie unter Klassen und Strukturen.

Verwenden einer Struktur

In C müssen Sie explizit das struct-Schlüsselwort 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.

Weitere Informationen finden Sie unter Klasse, Union 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

Siehe auch

Referenz

Definieren von Klassentypen