new (neuer Slot in vtable) (Komponentenerweiterungen für C++)
Das new-Schlüsselwort gibt an, dass ein virtueller Member ein neuer Slot im vtable abruft.
Alle Laufzeiten
(Es gibt keine Hinweise für diese Sprachfunktion, die auf allen Laufzeiten angewendet werden).
Windows Runtime
Unterstützt nicht in Windows-Runtime.
Common Language Runtime
Hinweise
In einer /clr Kompilierung new gibt an, dass ein virtueller Member ein neuer Slot im vtable abruft, dass die Funktion keine Basisklassenmethode überschreibt.
new wird der newslot Modifizierer, um IL für die Funktion hinzugefügt werden.Weitere Informationen zu newslot, finden Sie unter:
Anforderungen
Compileroption: /clr
Beispiele
Beispiel
Im folgenden Beispiel werden die Auswirkungen von new an.
// 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
}
Output
Siehe auch
Referenz
Überschreibungsspezifizierer (Komponentenerweiterungen für C++)