nouveau (nouvel emplacement dans vtable)
Le mot clé new indique qu'un membre virtuel obtiendra un nouvel emplacement dans la vtable.
Notes
Le mot clé new a de nombreux usages et significations.Pour plus d’informations, voir la rubrique d'homonymes new.
Tous les runtimes
(Aucune note de cette fonctionnalité de langage ne s'applique à tous les runtimes.)
Windows Runtime
Non pris en charge dans Windows Runtime.
Common Language Runtime
Remarques
Dans une compilation /clr, new indique qu'un membre virtuel obtiendra un nouvel emplacement dans la vtable et que la fonction ne substitue pas de méthode de classe de base.
newcause l'ajout du modificateur newslot à l'IL pour la fonction. Pour plus d'informations sur newslot, consultez :
Configuration requise
Option du compilateur : /clr
Exemples
Exemple
L'exemple suivant montre les effets de 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
}
Sortie
Voir aussi
Référence
spécificateurs de substitution