Foros del Web » Programación para mayores de 30 ;) » C/C++ »

conversiones de tipo

Estas en el tema de conversiones de tipo en el foro de C/C++ en Foros del Web. Estoy escribiendo algo de codigo en el que tengo que utiliso muchos punteros, pero esots punteros pertenecen a alguna clase base del tipo al que ...
  #1 (permalink)  
Antiguo 20/09/2006, 18:54
arm
 
Fecha de Ingreso: mayo-2006
Mensajes: 112
Antigüedad: 18 años
Puntos: 0
conversiones de tipo

Estoy escribiendo algo de codigo en el que tengo que utiliso muchos punteros, pero esots punteros pertenecen a alguna clase base del tipo al que apuntan, los tengo que convertir a su correspondiente clase.
Recuerdo que haber leido algo sobre que algunos tipos de conversiones eran mas rapidos...., o que se hacien en tiempo de compilacion y no cuasava retraso en tiempo de ejecucion, mi problema es que no recuerdo la informacion precisa, y no la he encontrado en mis documentos, asi que me preguntava si ustedes tenian una idea precisa.
__________________
-> La duda adecuada es un buen comienzo <-
  #2 (permalink)  
Antiguo 20/09/2006, 21:21
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
arm, tampoco, no todo es optimizacion, al principio tu meta tiene que ser el cumplimiento de la tarea especifica, con el minimo de errores, ya despues te enfocarias en la optimizacion de tu codigo.

si existen en C++ 2 tipos de converciones, es por que en determinadas tareas se utiliza las converciones estaticas y en otras las dinamicas.

si tu aplicacion requiere especificamente de convercion dinamica, y tu por optimizar le metes estatica, si que te causara errores, de ejecucion.


en C++, tenemmos static_cast y dynamic_cast,

cad uno tiene su proposito.

static _cast no hace una evaluacion de si tu puntero a convertir apunta a una clase derivada del puntero a que asignas, solo hace la convercion y ya.

esto te puede traer problemas.

en cambio, dynamic_cast, si te hace una comprobacion ,
y si tu puntero apunta a una clase derivada del puntero a asignar, entonces te retorna la direccion, de lo contrario te retorna 0.
su funcionamiento, es similar al operador as de C#o VB.NET. o sera is. no recuerdo. jeje

a lo que voy es que dependera de clo que quieres hacer.

tambien tenemos a reinterpret_cast, pero con este seriamos mas cuidadosos.

si estas manejando polimorfismo, yo te recomiendo usar dynamic_cast, a pesar de hacer el casting en tiempo de ejecucion.

a menos que tenga todo muy controlado como par usar el static_cast.

ademas no estoy del todo seguro si el static cast funcione muy bein en este caso, y de funcionar, las funciones polimoricas a usar siempre se ligaran en tiempo de ejecucion.

Saludos.
  #3 (permalink)  
Antiguo 21/09/2006, 17:04
arm
 
Fecha de Ingreso: mayo-2006
Mensajes: 112
Antigüedad: 18 años
Puntos: 0
Ah si, estas en lo cierto.
Muchas gracias.
__________________
-> La duda adecuada es un buen comienzo <-

Última edición por arm; 21/09/2006 a las 17:16
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:57.