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++)