Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/09/2006, 21:21
Nivel7
 
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.