__abstract
Notes
Cette rubrique s'applique uniquement à la version 1 des extensions managées pour C++.Cette syntaxe doit être utilisée uniquement pour conserver le code de la version 1.Consultez résumé (Visual C++) pour plus d'informations sur l'utilisation de la fonctionnalité équivalente dans la nouvelle syntaxe.
Déclare une classe managée qui ne peut pas être instanciée directement.
__abstract class-specifier
__abstract struct-specifier
Notes
Le mot clé __abstract déclare que la classe cible peut être utilisée uniquement comme une classe de base d'une autre classe. L'application de __abstract à une classe ou à une structure n'implique pas que le résultat est un classe __gc ou une structure __gc.
Différente de la notion C++ de classe de base abstraite, une classe avec le mot clé __abstract peut définir ses fonctions membres.
Notes
Le mot clé __abstract n'est pas autorisé en cas d'utilisation avec le mot clé __value ou __sealed et il est redondant en cas d'utilisation avec le mot clé __interface.
Exemple
Dans l'exemple suivant, la classe Derived est dérivée d'une classe de base abstraite (Base). L'instanciation est ensuite tentée sur les deux, mais seule Derived réussit.
// keyword__abstract.cpp
// compile with: /clr:oldSyntax
#using <mscorlib.dll>
__abstract __gc class Base {
int BaseFunction() {
return 0;
}
};
__gc class Derived: public Base {};
int main() {
Base* MyBase = new Base(); // C3622 can't BAse is abstract
Derived* MyDerived = new Derived();
}