new (nuovo slot in vtable) (C++/CLI e C++/CX)
La new
parola chiave indica che un membro virtuale otterrà un nuovo slot nella tabella virtuale.
Tutti i runtime
Non esistono note per questa funzionalità del linguaggio che si applichino a tutti i runtime.
Windows Runtime
Elemento non supportato in Windows Runtime.
Common Language Runtime
Osservazioni:
In una /clr
compilazione indica new
che un membro virtuale otterrà un nuovo slot nella tabella virtuale. La funzione non esegue l'override di un metodo della classe base.
new
fa in modo che il modificatore newslot venga aggiunto al servizio di bilanciamento del carico interno per la funzione. Per altre informazioni su newslot, vedere:
Requisiti
Opzione del compilatore: /clr
Esempi
Nell'esempio seguente viene illustrato l'effetto di 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
Vedi anche
Estensioni componenti per .NET e UWP
Identificatori di override