Udostępnij za pośrednictwem


struktura (C++)

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

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

Parametry

  • template-spec
    Opcjonalne specyfikacje szablonu.Aby uzyskać więcej informacji, zobacz Specyfikacje szablonu.

  • struct
    Słowo kluczowe struct.

  • ms-decl-spec
    Opcjonalna specyfikacja klasy magazynowania.Aby uzyskać więcej informacji, zobacz słowo kluczowe __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.

  • base-list
    Opcjonalna lista klas lub struktur, z której pochodzą elementy członkowskie tej struktury.Aby uzyskać więcej informacji, zobacz Klasy podstawowe.Każda nazwa podstawowej klasy lub struktury może być poprzedzona przez specyfikator dostępu (public, private, protected) i słowo kluczowe virtual.Zobacz tabelę dostępu do elementu członkowskiego w Kontrolowanie dostępu do elementów członkowskich klasy, aby uzyskać więcej informacji.

  • member-list
    Lista składników struktury.Aby uzyskać więcej informacji, zobacz Elementy członkowskie klasy.Jedyną różnicą jest użycie struct zamiast class.

  • declarators
    Lista deklaratora określająca nazwy klasy.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 klasy są public.Listy inicjatorów są wspólne w strukturach, ponieważ elementy członkowskie danych są domyślnie public. Aby uzyskać więcej informacji, zobacz Przegląd 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 C++, struktura jest taka sama, jak klasa, z tą różnicą, że jej elementy członkowskie są domyślnie public.

Aby uzyskać informacje dotyczące zarządzanych klas i struktur, zobacz Klasy i struktury.

Korzystanie ze struktury

W C, trzeba jawnie użyć słowa kluczowego struct, aby zadeklarować strukturę.W 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 klasa, unia i wyliczenie.

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

Zobacz też

Informacje

Definiowanie typów klas