struktura (C++)

Słowo struct kluczowe definiuje typ struktury i/lub zmienną typu struktury.

Składnia

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

Parametry

specyfikacja szablonu
Opcjonalne specyfikacje szablonu. Aby uzyskać więcej informacji, zobacz Specyfikacje szablonów.

struct
Słowo struct kluczowe.

ms-decl-spec
Opcjonalna specyfikacja klasy magazynowania. Aby uzyskać więcej informacji, zapoznaj się ze słowem kluczowym __declspec .

tag
Nazwa typu nadana strukturze. Znacznik staje się słowem zastrzeżonym w obrębie struktury. Znacznik jest opcjonalny. W przypadku pominięcia zostanie zdefiniowana anonimowa struktura. Aby uzyskać więcej informacji, zobacz Anonimowe typy klas.

lista bazowa
Opcjonalna lista klas lub struktur, z której pochodzą składowe tej struktury. Aby uzyskać więcej informacji, zobacz Klasy bazowe. Każda nazwa klasy bazowej lub struktury może być poprzedzona specyfikatorem dostępu (publicznym, prywatnym, chronionym) i wirtualnym słowem kluczowym. Aby uzyskać więcej informacji, zobacz tabelę dostępu do składowych w temacie Kontrolowanie dostępu do składowych klas.

lista elementów członkowskich
Lista składników struktury. Aby uzyskać więcej informacji, zobacz Omówienie składowej klasy. Jedyną różnicą jest to, że struct jest używana zamiast class.

Deklaratorów
Lista deklaratorów określająca nazwy struktury. Listy deklaratorów deklarują jedno lub więcej wystąpień typu struktury. Deklaratory mogą zawierać listy inicjatorów, jeśli wszystkie elementy członkowskie danych struktury to public. Listy inicjatorów są wspólne w strukturach, ponieważ składowe danych są public domyślnie. Aby uzyskać więcej informacji, zobacz Omówienie deklaratorów .

Uwagi

Typ struktury jest zdefiniowanym przez użytkownika typem złożonym. Składa się z pól lub elementów członkowskich, które mogą mieć różne typy.

W języku C++struktura jest taka sama jak klasa, z tą różnicą, że jej składowe są public domyślnie.

Aby uzyskać informacje na temat klas zarządzanych i struktur w języku C++/CLI, zobacz Klasy i struktury.

Korzystanie ze struktury

W języku C należy jawnie użyć słowa kluczowego struct , aby zadeklarować strukturę. W języku C++nie trzeba używać słowa kluczowego struct po zdefiniowaniu typu.

Istnieje opcja zadeklarowania zmiennych, kiedy typ struktury jest definiowany, przez umieszczenie jednej lub więcej nazw zmiennych, oddzielonych przecinkami, między zamykającym nawiasem klamrowym i średnikiem.

Zmienne struktury mogą być inicjowane. Inicjowanie dla każdej zmiennej musi być ujęte w nawiasy klamrowe.

Aby uzyskać powiązane informacje, zobacz klasy, unii i wyliczenia.

Przykład

#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