Avancé

Surcharge et conversions implicites

C++, Avancé

Lorsqu’un appel de fonction ne correspond pas exactement à une signature, le compilateur C++ effectue des conversions implicites pour tenter de trouver une correspondance. Ce mécanisme est au coeur de la résolution de surcharge (overload resolution).

Les 3 rangs de conversion #

Le compilateur C++ classe les conversions implicites en 3 rangs, du plus prioritaire au moins prioritaire :

RangNomExemples
1Exact matchAucune conversion, ajout de const, lvalue-to-rvalue
2Promotionfloatdouble, shortint, charint
3Conversiondoubleint, doublefloat, intfloat

Exemple concret #

Considérons deux surcharges :

...

© HE-Arc 2020-2026 - Tous droits réservés.