__abstract
Pubblicato: aprile 2016
Nota
Questo argomento si applica solo alla versione 1 delle estensioni gestite per C++. Questa sintassi deve essere utilizzata solo per gestire il codice della versione 1. Vedere abstract (C++ Component Extensions) per informazioni sull'utilizzo della funzionalità equivalente nella nuova sintassi.
Dichiara una classe gestita di cui non è possibile creare un'istanza direttamente.
Sintassi
__abstract
class-specifier
__abstract
struct-specifier
Note
La parola chiave __abstract dichiara che la classe di destinazione può essere utilizzata solo come classe base di un'altra classe. L'applicazione di __abstract a una classe o struttura non implica che il risultato sia una classe __gc o una struttura __gc.
Differendo dalla nozione di C++ di una classe base abstract, una classe con la parola chiave __abstract può definire le relative funzioni membro.
Nota
La parola chiave __abstract non è consentita se utilizzata con la parola chiave __value o __sealed ed è ridondante se utilizzata con la parola chiave __interface.
Esempio
Nell'esempio seguente la classe Derived è derivata da una classe base astratta (Base). La creazione di istanze viene quindi effettuata su entrambe, ma solo Derived ha esito positivo.
// 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();
}