Conversiones implícitas
Las conversiones implícitas se realizan cada vez que una expresión de algún tipo T1 se utiliza en un contexto que no acepta ese tipo, pero acepta algún otro tipo T2; en particular:
- cuando la expresión se utiliza como el argumento al llamar a una función que se declara con
T2como parámetro; - cuando la expresión se utiliza como un operando con un operador que espera
T2; - cuando se inicializa un nuevo objeto de tipo
T2, incluyendo la instrucciónreturnen una función que devuelveT2; - cuando se usa la expresión en una instrucción
switch(T2es de tipo entero); - cuando se usa la expresión en una instrucción
ifo un bucle (T2es de tipobool).
El programa está bien formado (se compila) sólo si existe una secuencia de conversión implícita inequívoca de T1 a T2.
Si hay varias sobrecargas de la función o el operador que se llama, después que la secuencia de conversión implícita se construye a partir de T1 para cada T2 disponible, las reglas de resolución de sobrecarga deciden cuál sobrecarga se compila.
Nota: En expresiones aritméticas, el tipo de destino de las conversiones implícitas en los operandos dados a los operadores binarios se determina por un conjunto de reglas separado: conversiones aritméticas habituales.