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

sealed est un mot clé contextuel pour les classes de référence qui indique qu’un membre virtuel ne peut pas être remplacé ou qu’un type ne peut pas être utilisé comme type de base.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.

Notes

Le langage standard ISO C++11 introduit le mot clé final.The ISO C++11 Standard language introduced the final keyword. Utilisez final sur les classes standard et sealed sur les classes de référence.Use final on standard classes, and sealed on ref classes.

Tous les runtimesAll Runtimes

SyntaxeSyntax

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

ParamètresParameters

identifieridentifier
Nom de la fonction ou de la classe.The name of the function or class.

type de retourreturn-type
Type retourné par une fonction.The type that's returned by a function.

NotesRemarks

Dans le premier exemple de syntaxe, une classe est sealed.In the first syntax example, a class is sealed. Dans le deuxième exemple, une fonction virtuelle est sealed.In the second example, a virtual function is sealed.

Utilisez le mot clé sealed pour les classes de référence et leurs fonctions membres virtuelles.Use the sealed keyword for ref classes and their virtual member functions. Pour plus d’informations, consultez Spécificateurs de substitution et compilations natives.For more information, see Override Specifiers and Native Compilations.

Vous pouvez détecter au moment de la compilation si un type est sealed à l’aide de la caractéristique de type __is_sealed(type).You can detect at compile time whether a type is sealed by using the __is_sealed(type) type trait. Pour plus d’informations, consultez Prise en charge du compilateur pour les caractéristiques de type.For more information, see Compiler Support for Type Traits.

sealed est un mot clé contextuel.sealed is a context-sensitive keyword. Pour plus d’informations, consultez Mots clés contextuels.For more information, see Context-Sensitive Keywords.

Windows RuntimeWindows Runtime

Consultez Classes et structures de référence.See Ref classes and structs.

SpécificationsRequirements

Option du compilateur : /ZWCompiler option: /ZW

Common Language RuntimeCommon Language Runtime

(Aucune note de cette fonctionnalité de langage ne s’applique qu’au Common Language Runtime.)(There are no remarks for this language feature that apply to only the common language runtime.)

SpécificationsRequirements

Option du compilateur : /clrCompiler option: /clr

ExemplesExamples

L’exemple de code suivant montre l’effet de sealed sur un membre virtuel.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

L'exemple de code suivant montre comment marquer une classe comme 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 {}
};

Voir aussiSee also

Extensions de composant pour .NET et UWPComponent Extensions for .NET and UWP