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