new (new slot in vtable) (C++/CLI and C++/CX)
The new
keyword indicates that a virtual member will get a new slot in the vtable.
All Runtimes
(There are no remarks for this language feature that apply to all runtimes.)
Windows Runtime
Not supported in Windows Runtime.
Common Language Runtime
Remarks
In a /clr
compilation, new
indicates that a virtual member will get a new slot in the vtable; that the function does not override a base class method.
new
causes the newslot modifier to be added to the IL for the function. For more information about newslot, see:
Requirements
Compiler option: /clr
Examples
The following sample shows the effect of 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
See also
Feedback
https://aka.ms/ContentUserFeedback.
În curând: Pe parcursul anului 2024, vom elimina treptat Probleme legate de GitHub ca mecanism de feedback pentru conținut și îl vom înlocui cu un nou sistem de feedback. Pentru mai multe informații, consultați:Trimiteți și vizualizați feedback pentru