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