Condividi tramite


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