Sdílet prostřednictvím


Třídy a struktury (rozšíření komponent C++)

Deklaruje třídu nebo strukturu, jejíž životnost objektu je spravována automaticky.Je-li již objekt nedostupný nebo program překročí rozsah jeho platnosti, jazyk Visual C++ automaticky uvolní paměť alokovanou pro tento objekt.

Všechny moduly runtime

Syntaxe

class_access ref class    name modifier :  inherit_access base_type {};
class_access ref struct   name modifier :  inherit_access base_type {};
class_access value class  name modifier :  inherit_access base_type {};
class_access value struct name modifier :  inherit_access base_type {};

Parametry

  • class_access (volitelné)
    Přístupnost třídy nebo struktury mimo sestavení.Možnými hodnotami jsou public a private (private je výchozí nastavení).Vnořené třídy nebo struktury nemohou specifikátor class_access používat.

  • name
    Název třídy nebo struktury.

  • modifier (volitelné)
    Platnými modifikátory jsou abstract a sealed.

  • inherit_access (volitelné)
    Přístupnost typu base_type.Jedinou povolenou přístupností je public (public je výchozí nastavení).

  • base_type (volitelné)
    Základní typ.Typ value však nemůže fungovat jako základní typ.

    Další informace naleznete v popisech tohoto parametru specifických pro daný jazyk v oddílech Windows Runtime a Common Language Runtime.

Poznámky

Výchozí přístupnost členů objektu deklarovaného klíčovým slovem ref class nebo value class je private.Výchozí přístupnost členů objektu deklarovaného klíčovým slovem ref struct nebo value struct je public.

Pokud typ odkazu dědí z jiného typu odkazu, virtuální funkce v základní třídě musí být explicitně přepsány (pomocí klíčového slova override (rozšíření komponent C++)) nebo skryté (pomocí klíčového slova new (nový slot v tabulce vtable) (rozšíření komponent C++)).Funkce odvozené třídy musí být také explicitně označeny klíčovým slovem virtual.

Chcete-li v době kompilace určit, zda je typ ref class nebo ref struct či value class nebo value struct, použijte funkce __is_ref_class (type), __is_value_class (type) nebo __is_simple_value_class (type).Další informace naleznete v tématu Podpora kompilátoru pro typové vlastnosti (C++ Component Extensions).

Další informace o třídách a strukturách naleznete v tématech

Windows Runtime

Poznámky

Přečtěte si rovněž témata týkající se ref tříd a struktur a value tříd a struktur.

Parametry

  • base_type (volitelné)
    Základní typ.Typ ref class nebo ref struct může dědit z žádného nebo libovolného množství rozhraní a z žádného nebo jednoho typu ref.Typ value class nebo value struct může dědit pouze z žádného nebo libovolného množství rozhraní.

    Je-li deklarován objekt pomocí klíčového slova ref class nebo ref struct, je k objektu přistupováno prostřednictvím popisovače; tj. ukazatele na objekt počítajícího odkazy.Přesáhne-li proměnná svůj rozsah platnosti, kompilátor automaticky odstraní příslušný objekt.Je-li objekt použit jako parametr ve volání nebo je-li uložen v proměnné, je ve skutečnosti předáván nebo ukládán popisovač.

    Je-li objekt deklarován pomocí klíčového slova value class nebo value struct, není životnost deklarovaného objektu kontrolována.Tento objekt se chová jako jakákoliv jiná standardní třída nebo struktura jazyka C++.

6w96b5h7.collapse_all(cs-cz,VS.110).gifPožadavky

Možnost kompilátoru: /ZW

Common Language Runtime

Poznámky

Následující tabulka vypisuje odlišnosti od syntaxe uvedené v oddíle Všechny moduly runtime specifické pro jazyk C++/CLI.

Parametry

  • base_type (volitelné)
    Základní typ.Typ ref class nebo ref struct může dědit z žádného nebo libovolného množství spravovaných rozhraní a z žádného nebo jednoho typu ref.Typ value class nebo value struct může dědit pouze z nula nebo více spravovaných rozhraní.

    Klíčová slova ref class a ref struct oznamují kompilátoru, že paměť bude třídě nebo struktuře přidělena z haldy.Je-li objekt použit jako parametr ve volání nebo je-li uložen v proměnné, je ve skutečnosti předáván nebo ukládán odkaz.

    Klíčová slova value class a value struct oznamují kompilátoru, že hodnota alokované třídy nebo struktury je předávána funkcím nebo ukládána ve členech.

6w96b5h7.collapse_all(cs-cz,VS.110).gifPožadavky

Možnost kompilátoru: /clr

Viz také

Koncepty

Součást rozšíření pro Runtime platformy