__abstract
Veröffentlicht: Juli 2016
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. Finden Sie unter abstract (C++ Component Extensions) Informationen zur Verwendung der entsprechenden Funktionalität in der neuen Syntax.
Deklariert eine verwaltete Klasse, die nicht direkt instanziiert werden kann.
Syntax
__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();
}