Condividi tramite


new (nuovo slot in vtable) (C++/CLI e C++/CX)

La new parola chiave indica che un membro virtuale otterrà un nuovo slot nella tabella virtuale.

Tutti i runtime

Non esistono note per questa funzionalità del linguaggio che si applichino a tutti i runtime.

Windows Runtime

Elemento non supportato in Windows Runtime.

Common Language Runtime

Osservazioni:

In una /clr compilazione indica new che un membro virtuale otterrà un nuovo slot nella tabella virtuale. La funzione non esegue l'override di un metodo della classe base.

new fa in modo che il modificatore newslot venga aggiunto al servizio di bilanciamento del carico interno per la funzione. Per altre informazioni su newslot, vedere:

Requisiti

Opzione del compilatore: /clr

Esempi

Nell'esempio seguente viene illustrato l'effetto di new.

// newslot.cpp
// compile with: /clr
ref class C {
public:
   virtual void f() {
      System::Console::WriteLine("C::f() called");
   }

   virtual void g() {
      System::Console::WriteLine("C::g() called");
   }
};

ref class D : public C {
public:
   virtual void f() new {
      System::Console::WriteLine("D::f() called");
   }

   virtual void g() override {
      System::Console::WriteLine("D::g() called");
   }
};

ref class E : public D {
public:
   virtual void f() override {
      System::Console::WriteLine("E::f() called");
   }
};

int main() {
   D^ d = gcnew D;
   C^ c = gcnew D;

   c->f();   // calls C::f
   d->f();   // calls D::f

   c->g();   // calls D::g
   d->g();   // calls D::g

   D ^ e = gcnew E;
   e->f();   // calls E::f
}
C::f() called

D::f() called

D::g() called

D::g() called

E::f() called

Vedi anche

Estensioni componenti per .NET e UWP
Identificatori di override