Ver Mensaje Individual
  #8 (permalink)  
Antiguo 10/05/2014, 15:54
Ch3Ch0
 
Fecha de Ingreso: octubre-2011
Mensajes: 17
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Error con conversion de tipos/c++

Cita:
Iniciado por CalgaryCorpus Ver Mensaje
En C++ no es posible instanciar tipos que el compilador no ha visto completamente. Tu operator intenta hacer esto (linea 34) y el compilador, perplejo, no lo acepta y reclama.

En terminos generales, en C++ está permitida la conversión HACIA otros tipos usando operator o bien la conversion DESDE otro tipo mediante el constructor. Al incluir ambos estas haciendo competir las conversiones. Si pudieras compilar ambos, un compilador hábil lo mas probable es que te diga que hay ambiguedad en algunos casos. En otro resolverá por el uso que le das (por ejemplo si lo usas en contextos en donde se generan variables temporales).

Es mejor la conversion DESDE otro tipo, usando el contructor.. Construir un objeto de otra clase tiene el problema que cada cambio en la segunda clase hay que traerla a la primera, o sea hay que modificar 2 veces todo.
La conversion DESDE otra clase podria no tener este costo si construyo mi objeto usando metodos publicos de la otra clase. Mientras la otra clase no cambie su interfaz hacia afuera, no habra el costo de modificar otras clases al modificar esta.

En este codigo sugiero que remuevas el operator..
Buenas. Si, lo que vos me estas diciendo es que me conviene usar el contructor y evitar la funcion operator, que es lo que hice yo y, como bien decis, asi me funciono correctamente. Ahora, este problema si lo quisiera hacer con la funcion operator me estas diciendo que se me haria mas complicado?, me gustaria saber como deberia ser el codigo usando solo la funcion operator (si es que se puede hacer) me quedo esa intriga jaja. Muchas gracias por tu respuesta, saludos!