Sdílet prostřednictvím


struct (C++)

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

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

Parametry

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

  • struct
    Klíčové slovo struct.

  • ms-decl-spec
    Volitelná specifikace paměťové třídy.Další informace naleznete 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 Typy anonymních tříd.

  • base-list
    Volitelný seznam tříd nebo struktur, ze kterých tato struktura odvodí svoje členy.Další informace naleznete v tématu Třídy Base.Každý název základní třídy nebo struktury může být uvozen specifikátorem přístupu (public, private, protected) a klíčovým slovem virtual.Další informace viz tabulka pro přístup členů Řízení přístupu ke členům třídy.

  • member-list
    Seznam členů struktury.Další informace naleznete v tématu Členy třídy.Jediný rozdíl zde je, že struct je použito místo class.

  • declarators
    Seznam deklarátoru určující názvy třídy.Seznam deklarátoru deklarující jednu nebo více instancí typu struktura.Deklarátory mohou obsahovat inicializační seznamy, pokud jsou všechny datové členy třídy public.Inicializační seznamy jsou běžné ve strukturách, protože datové členy mají ve výchozím nastavení parametr public. Další informace naleznete 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 ve výchozím nastavení public.

Informace o spravovaných třídách a strukturách naleznete v tématu Třídy a struktury.

Používání struktury

V jazyce C je nutné pro deklaraci struktury explicitně zadat klíčové slovo struct.V jazyce C++ není třeba po definování typu použít klíčové slovo struct.

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řída, sjednocení a výčet.

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

Viz také

Referenční dokumentace

Definování typů třídy