duda simple

Iniciado por flony, 11 Enero 2011, 18:27 PM

0 Miembros y 1 Visitante están viendo este tema.

flony

hola gente amiga estoy leyendo un libro en ingles y como me mareo la traduccion que hace tanto google como babylon recurro a ud para sacarme la duda...
que significa y para q se usa "castig", "static_cast",  "dynamic_cast" y "const-ness "
modifico solo que significa
si un problema no tiene solucion entonces no es un problema...es algo inevitable

RyogiShiki

Hola, la verdad pienso que no soy el mejor, y el más indicado para explicarlo, y si lo hiciera seguramente me liaria un montón, es por eso que te remito a un experto que lo explica de maravilla, es el autor del Libro Thinking in C++ en su versión en español, donde hace un paralelo entre los moldes de C y los moldes explicitos de C++ Para que se entienda claro.

Si sigues el siguiente link encontraras la explicación a tus dudas:
http://arco.esi.uclm.es/~david.villa/pensar_en_C++/vol1/vol1.html#id2860494

Espero sea de ayuda y lo entiendas!


Oblivi0n

Para leer un libro tecnico en ingles es mejor tener constumbre de leer en ingles, al principio ami me pasaba iwal, puse el windows xp y ubuntu en ingles, y leyendo algun que otro libro en ingles, vas pillandole el truco, no se puede decir que tenga un gran nivel de ingles, pero los libros mas o menos los entiendo todos.

cast creo que es la conversion, quiero decir, si tengo una variable por ejemplo, float, pasarla a int
variable_entera = (int) variable_float

Un saludo.

PD: lo de const-ness, si que no lo se

RyogiShiki

#3
Cita de: guru6 en 11 Enero 2011, 18:54 PM
Para leer un libro tecnico en ingles es mejor tener constumbre de leer en ingles, al principio ami me pasaba iwal, puse el windows xp y ubuntu en ingles, y leyendo algun que otro libro en ingles, vas pillandole el truco, no se puede decir que tenga un gran nivel de ingles, pero los libros mas o menos los entiendo todos.

cast creo que es la conversion, quiero decir, si tengo una variable por ejemplo, float, pasarla a int
variable_entera = (int) variable_float

Un saludo.

PD: lo de const-ness, si que no lo se

Pero esa es la forma en que se haria en C en donde se deja a exposición el defecto de la baja restricción en la comprobación de tipos del Lenguaje. La pregunta esta enfocada a C++ donde el uso del TypeCasting es un poco diferente.


Littlehorse

castig: No se que es, me suena a un usuario del foro. Tal vez hayas querido decir casting.

static_cast: Generalmente se utiliza cuando se conoce de antemano los tipos de datos involucrados en la conversión; porciones de código criticas donde el rendimiento importa sobremanera. Este tipo de casteo no chequea en tiempo de ejecución por lo tanto no tiene tanta sobrecarga de rendimiento pero a la vez son inseguros si se utilizan de mala forma, puesto que los chequeos debe hacerlos el programador.

dynamic_cast: Explicar dynamic_cast es un tanto mas complicado, ya que involucra muchos otros conceptos de C++. Para resumirlo se podría decir que se utiliza con punteros y/o referencias y que en este caso si se hace un chequeo en tiempo de ejecución, por lo tanto son mas seguros pero a la vez tienen cierta sobrecarga en el rendimiento (aunque hay excepciones).

const-ness: A grandes rasgos son medidas que ayudan a los programadores a evitar posibles escrituras indeseadas. Es decir, si una variable A es const, al intentar modificar su contenido se recibe un error en tiempo de compilación. De esta forma se puede ahorrar mucho tiempo y se evitan muchos fallos.
Resumiendo, se trata de utilizar el especificador const para evitar que objetos constantes sean modificados, por ejemplo:

Código (cpp) [Seleccionar]
Obj const* Ptr //Ptr apunta a un Obj const
Obj no puede modificarse mediante Ptr.

Código (cpp) [Seleccionar]
Obj* const Ptr // Ptr es un puntero const que apunta hacia Obj
No podes modificiar el puntero Ptr, pero podes modificar Obj mediante Ptr.

Son solo ejemplos, ya sea el concepto de casting o el concepto de const-ness, ambos abarcan mucho mas que lo que te he mencionado, así que si quieres involucrarte mas lo ideal es que leas algún libro sobre el tema.

Saludos!
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

flony

gracias a todos me quedo claro el concepto...el libro de gankutsuo...ya esta en español y lo voy a leer  ;)
pero de paso voy a seguir traduciendo Wrox.Ivor.Hortons.Beginning.Visual.C.Plus.Plus.2008.pdf...porque es el que uso  :P
:laugh: :laugh: si es verdad error de tipeo era casting  :silbar:
si un problema no tiene solucion entonces no es un problema...es algo inevitable