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 prostředí 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
prostředí 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++.
Pož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.
Požadavky
Možnost kompilátoru: /clr