Freigeben über


new (neuer Slot in vtable) (Komponentenerweiterungen für C++)

Das Schlüsselwort new gibt an, dass ein virtuelles Member einen neuen Platz im vtable erhält.

Hinweis

Das Schlüsselwort new hat viele Verwendungszwecke und Bedeutungen.Weitere Informationen finden Sie im Thema zur Erläuterung der Mehrdeutigkeit von Neu.

Alle Laufzeiten

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

Windows-Runtime

Nicht unterstützt in Windows-Runtime.

Common Language Runtime

Hinweise

In einer /clr-Kompilierung gibt new an, dass ein virtuelles Member einen neuen PLatz im vtable erhält und dass die Funktion keine Basisklassenmethode überschreibt.

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

Voraussetzungen

Compileroption: /clr

Beispiele

Beispiel

Im folgenden Beispiel werden die Auswirkungen von new gezeigt.

// 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
}

Ausgabe

  
  
  
  
  

Siehe auch

Referenz

Überschreibungsspezifizierer (Komponentenerweiterungen für C++)

Konzepte

Komponentenerweiterungen für Laufzeitplattformen