new (nowe gniazdo w vtable) (C++ Component Extensions)
new słowo kluczowe wskazuje, że członek wirtualny otrzyma nowe gniazdo w vtable.
[!UWAGA]
new słowo kluczowe ma wiele zastosowań i znaczeń.Aby uzyskać więcej informacji, zobacz temat ujednoznacznienia new.
Wszystkie środowiska wykonawcze
(Nie ma żadnych uwag dla tej funkcji języka, które mają zastosowanie do wszystkich programów środowiska uruchomienia.)
Środowisko wykonawcze systemu Windows
Nie obsługiwane w Środowisko wykonawcze systemu Windows.
Środowisko uruchomieniowe języka wspólnego
Uwagi
W kompilacji /clr, new wskazuje, że wirtualny element członkowski otrzyma nowe miejsce w vtable; że funkcja nie zastępuje metody klasy podstawowej.
new powoduje dodanie modyfikatora nowego gniazda do IL dla funkcji. Aby uzyskać więcej informacji na temat nowego gniazda, zobacz:
Wymagania
Opcja kompilatora: /clr
Przykłady
Przykład
Poniższy przykład pokazuje wpływ 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
}
Dane wyjściowe
Zobacz też
Informacje
Specyfikatory zastąpienia (C++ Component Extensions)
Koncepcje
Component Extensions dla platform środowiska uruchomieniowego