Compartir a través de


Conversiones

Los objetos de un tipo de clase de se pueden convertir en objetos de otro tipo.Esto se realiza creando un objeto de tipo de clase de destino del tipo de clase de origen y copiar el resultado al objeto de destino.Este proceso se denomina conversión por el constructor.Los objetos también se pueden convertir por funciones de conversión proporcionadas por el usuario.

Cuando las conversiones estándar (descritas en Conversiones estándar) no pueden convertir sea de un tipo determinado a un tipo de clase, el compilador puede seleccionar conversiones definidas por el usuario para ayudar completa el trabajo.Además de realizar conversiones explícitas, las conversiones tienen lugar cuando:

  • Una expresión de inicializador no es el mismo tipo que el objeto que se está inicializando.

  • El tipo de argumento utilizado en una llamada de función no coincide con el tipo de argumento especificado en la declaración de función.

  • El tipo del objeto que se devuelve de una función no coincide con el tipo de valor devuelto especificado en la declaración de función.

  • Dos operandos de la expresión deben ser del mismo tipo.

  • Una expresión que controla una instrucción de iteración o de selección requiere un tipo diferente del que se proporcione.

Se aplica una conversión definida por el usuario sólo si es inequívoca; si no, se genera un mensaje de error.La ambigüedad se activa actualmente uso.Por consiguiente, si las características que producen ambigüedad no se utilizan, una clase puede ser señalado con la ambigüedad posibles y no genera ningún error.Aunque hay muchas situaciones en las que las ambigüedades surgen, existen dos causas que conducen de ambigüedades:

  • Un tipo de clase es derivado mediante herencia múltiple, y no es clara de qué clase base para seleccionar la conversión (vea ambigüedad).

  • Un operador explícito de la conversión de tipos y un constructor para la misma conversión existen (vea funciones de conversión).

La conversión del constructor y la conversión por funciones de conversión obedecen reglas de control de acceso, como se describe en Control de acceso a miembros.Se prueba el control de acceso únicamente después de que la conversión se encuentra para ser ambigua.

Para obtener más información, vea Constructores de conversión.

Vea también

Referencia

El miembro especial funciona (C++)