__abstract
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.Per informazioni sull'utilizzo della funzionalità equivalente nella nuova sintassi, vedere abstract (Estensioni del componente C++).
Dichiara una classe gestita di cui non è possibile creare un'istanza direttamente.
__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 __sealed o __value 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();
}