sealed (C++/CLI i C++/CX)sealed (C++/CLI and C++/CX)

Sealed to kontekstowe słowo kluczowe dla klas referencyjnych, które wskazują, że nie można przesłonić wirtualnego elementu członkowskiego lub że typ nie może być używany jako typ podstawowy.sealed is a context-sensitive keyword for ref classes that indicates that a virtual member cannot be overridden, or that a type cannot be used as a base type.

Uwaga

Język standardowy ISO C++ 11 wprowadził słowo kluczowe Final .The ISO C++11 Standard language introduced the final keyword. Używaj wersji Final dla klas standardowych i zapieczętowanych w klasach ref.Use final on standard classes, and sealed on ref classes.

Wszystkie środowiska wykonawczeAll Runtimes

SkładniaSyntax

ref class identifier sealed {...};
virtual return-type identifier() sealed {...};

ParametryParameters

identyfikatoraidentifier
Nazwa funkcji lub klasy.The name of the function or class.

Typ zwracanyreturn-type
Typ, który jest zwracany przez funkcję.The type that's returned by a function.

UwagiRemarks

W pierwszej składni, Klasa jest zapieczętowana.In the first syntax example, a class is sealed. W drugim przykładzie funkcja wirtualna jest zapieczętowana.In the second example, a virtual function is sealed.

Używaj zapieczętowanego słowa kluczowego dla klas referencyjnych i ich wirtualnych funkcji składowych.Use the sealed keyword for ref classes and their virtual member functions. Aby uzyskać więcej informacji, zobacz specyfikatory przesłonięcia i kompilacje natywne.For more information, see Override Specifiers and Native Compilations.

Możesz wykryć w czasie kompilacji, niezależnie od tego, czy typ jest zapieczętowany przy użyciu __is_sealed(type) cech typu.You can detect at compile time whether a type is sealed by using the __is_sealed(type) type trait. Aby uzyskać więcej informacji, zobacz Obsługa kompilatora dla cech typu.For more information, see Compiler Support for Type Traits.

zapieczętowany jest kontekstowym słowem kluczowym.sealed is a context-sensitive keyword. Aby uzyskać więcej informacji, zobacz kontekstowe słowa kluczowe.For more information, see Context-Sensitive Keywords.

Środowisko wykonawcze systemu WindowsWindows Runtime

Zobacz klasy referencyjne i struktury.See Ref classes and structs.

WymaganiaRequirements

Opcja kompilatora: /ZWCompiler option: /ZW

środowiska uruchomieniowe w trakcie wykonaniaCommon Language Runtime

(Nie ma żadnych uwag dla tej funkcji języka, które mają zastosowanie tylko do środowiska uruchomieniowego języka wspólnego).(There are no remarks for this language feature that apply to only the common language runtime.)

WymaganiaRequirements

Opcja kompilatora: /clrCompiler option: /clr

PrzykładyExamples

Poniższy przykład kodu przedstawia efekt zapieczętowanego elementu członkowskiego.This following code example shows the effect of sealed on a virtual member.

// sealed_keyword.cpp
// compile with: /clr
interface struct I1 {
   virtual void f();
   virtual void g();
};

ref class X : I1 {
public:
   virtual void f() {
      System::Console::WriteLine("X::f override of I1::f");
   }

   virtual void g() sealed {
      System::Console::WriteLine("X::f override of I1::g");
   }
};

ref class Y : public X {
public:
   virtual void f() override {
      System::Console::WriteLine("Y::f override of I1::f");
   }

   /*
   // the following override generates a compiler error
   virtual void g() override {
      System::Console::WriteLine("Y::g override of I1::g");
   }
   */
};

int main() {
   I1 ^ MyI = gcnew X;
   MyI -> f();
   MyI -> g();

   I1 ^ MyI2 = gcnew Y;
   MyI2 -> f();
}
X::f override of I1::f
X::f override of I1::g
Y::f override of I1::f

Następny przykład kodu pokazuje, jak oznaczyć klasę jako Sealed.The next code example shows how to mark a class as sealed.

// sealed_keyword_2.cpp
// compile with: /clr
interface struct I1 {
   virtual void f();
};

ref class X sealed : I1 {
public:
   virtual void f() override {}
};

ref class Y : public X {   // C3246 base class X is sealed
public:
   virtual void f() override {}
};

Zobacz teżSee also

Rozszerzenia składników dla platform .NET i platformy UWPComponent Extensions for .NET and UWP