nouveau (nouvel emplacement dans vtable) (C++/CLI et C++/CX)
Le new
mot clé indique qu’un membre virtuel obtient un nouvel emplacement dans la table virtuelle.
Tous les runtimes
(Aucune remarque pour cette fonctionnalité de langage ne s’applique à tous les runtimes.)
Windows Runtime
Non pris en charge dans Windows Runtime.
Common Language Runtime
Notes
Dans une /clr
compilation, new
indique qu’un membre virtuel obtient un nouvel emplacement dans la table virtuelle ; que la fonction ne remplace pas une méthode de classe de base.
new
entraîne l’ajout du modificateur de newslot à l’il de la fonction. Pour plus d’informations sur newslot, consultez :
Spécifications
Option du compilateur : /clr
Exemples
L’exemple suivant montre l’effet 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
}
C::f() called
D::f() called
D::g() called
D::g() called
E::f() called
Voir aussi
Extensions de composants pour .NET et UWP
Spécificateurs de substitution
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour