new (neuer Slot in vtable) (C++/CLI und C++/CX)

Die new Schlüsselwort (keyword) gibt an, dass ein virtuelles Mitglied einen neuen Steckplatz in der vtable erhält.

Alle Laufzeiten

(Es gibt keine Hinweise für diese Sprachfunktion, die für alle Laufzeiten gültig sind.)

Windows-Runtime

Wird nicht in Windows-Runtime unterstützt.

Übersicht: Common Language Runtime (CLR)

Hinweise

Gibt in einer /clr Kompilierung an, new dass ein virtuelles Element einen neuen Steckplatz in der vtable erhält; dass die Funktion keine Basisklassenmethode überschreibt.

new bewirkt, dass der Newslot-Modifizierer der IL für die Funktion hinzugefügt wird. Weitere Informationen zu "newslot" finden Sie unter:

Anforderungen

Compileroption: /clr

Beispiele

Das folgende Beispiel zeigt den Effekt von 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

Siehe auch

Komponentenerweiterungen für .NET und UWP
Überschreibungsspezifizierer