Klasy i struktury (C++ Component Extensions)
Deklaruje klasę lub strukturę, której czas życia obiektu jest automatycznie podawany.Gdy obiekt nie jest już dostępny lub wykracza poza zakres, Visual C++ automatycznie zwalnia pamięć, która jest alokowana do tego obiektu.
Wszystkie czasy wykonania
Składnia
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 (opcjonalnie)
Dostępność klasy lub struktury znajdującej się poza zestawem.Możliwe wartości to publiczny i private (private jest ustawieniem domyślnym).Klasy lub struktury zagnieżdżone nie mogą mieć specyfikatora class_access.nazwa
Nazwa klasy lub struktury.Modyfikator (opcjonalnie)
streszczenie i zamknięte są prawidłowymi modyfikatorami.dziedziczony dostęp (opcjonalnie)
Dostępność base_type.Jedyna dozwolona dostępność to public (public jest ustawieniem domyślnym).base_type (opcjonalnie)
Typ podstawowy.Jednakże wartość typu nie może działać jako typ podstawowego.Aby uzyskać więcej informacji, zobacz opisy specyficzne dla języka tego parametru w Środowisko wykonawcze systemu Windows i Środowisko uruchomieniowe języka wspólnego sekcje.
Uwagi
Domyślna dostępność dla elementów członkowskich do obiektu, zadeklarowana za pomocą ref class lub value class, jest private.Domyślna dostępność dla elementów członkowskich obiektu, zadeklarowana za pomocą ref struct lub value struct, jest public.
Gdy typ odwołania dziedziczy po innym typie odwołania, wirtualne funkcje w klasie bazowej muszą zostać jawnie zastąpione (za pomocą override (C++ Component Extensions)) lub ukryte (za pomocą new (nowe gniazdo w vtable) (C++ Component Extensions)).Funkcje klasy pochodnej również muszą być oznaczone explicite jako virtual.
Aby wykryć w czasie kompilacji, czy typ jest ref class lub ref struct albo value class lub value struct, użyj __is_ref_class (type), __is_value_class (type), or __is_simple_value_class (type).Aby uzyskać więcej informacji, zobacz Obsługa cech typu w kompilatorze (C++ Component Extensions).
Aby uzyskać więcej informacji, na temat klas i struktur, zobacz
Środowisko wykonawcze systemu Windows
Uwagi
Zob. Klasy i struktury referencyjne oraz Klasy i struktury wartości.
Parametry
base_type (opcjonalnie)
Typ podstawowy.ref classlub ref struct może dziedziczyć z zera lub więcej interfejsów i zero lub jeden ref typów.value class lub value struct dziedziczenie tylko z zero lub więcej interfejsów.Jeśli deklarujesz obiekt za pomocą słów kluczowych ref class lub ref struct, obiekt jest dostępny przez uchwyt obiektu, to znaczy przez wskaźnik licznikowy-odwołań do obiektu.Jeśli zadeklarowana zmienna wykracza poza zakres, kompilator automatycznie usuwa podlegający obiekt.Gdy obiekt jest używany jako parametr w wywołaniu lub jest przechowywany w zmiennej, faktycznie przekazywany jest lub przechowywany uchwyt do tego obiektu.
Jeśli deklarujesz obiekt za pomocą słów kluczowych value class lub value struct, okres istnienia zadeklarowanego obiektu nie jest nadzorowany.Obiekt zachowuje się jak wszelkie inne standardowe klasy lub struktury C++.
Wymagania
Opcja kompilatora: /ZW
Środowisko uruchomieniowe języka wspólnego
Uwagi
W poniższej tabeli wymieniono cechy specyficzne dla języka C++/ CLI, odróżniające go od składni przedstawionej w sekcji Wszystkie czasy wykonania.
Parametry
base_type (opcjonalnie)
Typ podstawowy.ref class lub ref struct może dziedziczyć z zera lub więcej zarządzanych interfejsów i zero lub jeden typów referencyjny.value class lub value struct dziedziczenie tylko z zero lub więcej zarządzanych interfejsów.Słowa kluczowe ref class i ref struct mówią kompilatorowi, że klasa lub struktura ma być zaalokowana na stosie.Gdy obiekt jest używany jako parametr w wywołaniu lub jest przechowywany w zmiennej, faktycznie przekazywane jest lub przechowywane odwołanie do tego obiektu.
Słowa kluczowe value class i value struct informują kompilator, że wartość alokowanej klasy lub struktury jest przekazywana do funkcji lub przechowywana w elementach członkowskich.
Wymagania
Opcja kompilatora: /clr
Zobacz też
Koncepcje
Component Extensions dla platform środowiska uruchomieniowego