Udostępnij za pośrednictwem


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