Freigeben über


__abstract

Hinweis

Dieses Thema gilt nur für Version 1 von Managed Extensions für C++.Diese Syntax sollte nur verwendet werden, um Code von Version 1 beizubehalten.Informationen über die Verwendung der entsprechenden Funktionen in der neuen Syntax finden Sie unter abstract (Komponentenerweiterungen für C++).

Deklariert eine verwaltete Klasse, die nicht direkt instanziiert werden kann.

__abstract class-specifier 
__abstract struct-specifier

Hinweise

Das __abstract-Schlüsselwort deklariert, dass die Zielklasse nur als Basisklasse einer anderen Klasse verwendet werden kann. Wird __abstract auf eine Klasse oder Struktur angewendet, bedeutet das nicht, dass das Resultat eine __gc-Klasse oder __gc-Struktur ist.

Im Unterschied zum C++-Begriff einer abstrakten Basisklasse kann eine Klasse mit dem __abstract-Schlüsselwort ihre Memberfunktionen definieren.

Hinweis

Das __abstract-Schlüsselwort ist bei Verwendung mit dem __value-Schlüsselwort oder dem __sealed- Schlüsselwort nicht zulässig und bei Verwendung mit dem __interface-Schlüsselwort redundant.

Beispiel

Im folgenden Beispiel wird die Derived-Klasse von der abstrakten Basisklasse (Base) abgeleitet. Der Versuch der Instanziierung wird dann für beide durchgeführt, ist aber nur für Derived erfolgreich.

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