Sdílet prostřednictvím


struct (C++)

Klíčové struct slovo definuje typ struktury nebo proměnnou typu struktury.

Syntaxe

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

Parametry

template-spec
Volitelné specifikace šablony. Další informace najdete v tématu Specifikace šablony.

struct
Klíčové struct slovo.

ms-decl-spec
Volitelná specifikace paměťové třídy. Další informace najdete v klíčovém slově __declspec .

tag
Název typu daný pro strukturu. Značka se změní na vyhrazené slovo v rámci struktury. Značka je volitelná. Pokud je tento argument vynechán, je definována anonymní struktura. Další informace naleznete v tématu Anonymní typy tříd.

základní seznam
Volitelný seznam tříd nebo struktur, ze kterých tato struktura odvodí svoje členy. Další informace najdete v tématu Základní třídy . Každému názvu základní třídy nebo struktury může předcházet specifikátor přístupu (veřejný, soukromý, chráněný) a virtuální klíčové slovo. Další informace najdete v tabulce přístupového přístupu členů v řízení přístupu k členům třídy.

seznam členů
Seznam členů struktury. Další informace najdete v přehledu člena třídy. Jediným rozdílem zde je, že struct se používá místo class.

deklarátory
Seznam deklarátoru určující názvy struktury. Seznam deklarátoru deklarující jednu nebo více instancí typu struktura. Deklarátory mohou obsahovat seznamy inicializátorů, pokud jsou publicvšechny datové členy struktury . Seznamy inicializátorů jsou ve strukturách společné, protože datové členy jsou public ve výchozím nastavení. Další informace najdete v tématu Přehled deklarátorů .

Poznámky

Typ struktury je složený typ definovaný uživatelem. Skládá se z polí nebo členů, které mohou mít různé typy.

V jazyce C++ je struktura stejná jako třída s tím rozdílem, že její členy jsou public ve výchozím nastavení.

Informace o spravovaných třídách a strukturách v C++/CLI najdete v tématu Třídy a struktury.

Používání struktury

V jazyce C musíte explicitně použít struct klíčové slovo k deklaraci struktury. V jazyce C++ není nutné po definování typu použít struct klíčové slovo.

Proměnné můžete deklarovat, pokud je typ struktury definován umístěním jednoho nebo více názvů proměnných oddělených čárkami mezi uzavírací závorkou a středníkem.

Proměnné struktury je možné inicializovat. Inicializace pro každou proměnnou musí být uzavřena do složených závorek.

Související informace naleznete v tématu třídy, sjednocení a výčtu.

Příklad

#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