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