Share via


__abstract

Nota

Este tema solo es aplicable a la versión 1 de Extensiones administradas para C++.Esta sintaxis solo se debe utilizar para mantener el código de la versión 1.Vea resumen (Visual C++) para obtener información sobre el uso de la funcionalidad equivalente en la nueva sintaxis.

Declara una clase administrada de la que no se pueden crear instancias directamente.

__abstract class-specifier 
__abstract struct-specifier

Comentarios

La palabra clave __abstract declara que la clase de destino solo se puede utilizar como clase base de otra clase. Aplicar __abstract a una clase o estructura no implica que el resultado sea una clase __gc o una estructura __gc.

A diferencia de la noción de C++ de una clase base abstract, una clase con la palabra clave __abstract puede definir sus propias funciones miembro.

Nota

La palabra clave __abstract no se permite cuando se utiliza con la palabra clave __value o __sealed, y es redundante cuando se utiliza con la palabra clave __interface.

Ejemplo

En el ejemplo siguiente, la clase Derived se deriva de una clase base abstracta (Base). La creación de instancias se intenta en ambos casos, pero solo Derived puede efectuarla.

// 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();
}