Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Zodiak98 en 18 Septiembre 2013, 07:13 am



Título: [Duda] ¿Existe alguna diferencia entre int(example); y (int) example;?
Publicado por: Zodiak98 en 18 Septiembre 2013, 07:13 am
Bueno es que siempre he utilizado el método de molde: " int(example) ; " y pues recién acabo de ver un código así: " (int) example; " Y pues supuse que hacía lo mismo que el primero, hice la prueba y así fue:
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     //Entre:
  8.     double a = 13.456;
  9.     double b = (int) a;
  10.  
  11.     cout << b << endl;
  12.  
  13.     //Y esto:
  14.  
  15.     double c = 13.456;
  16.     double d = int(c);
  17.  
  18.     cout << d << endl;
  19.  
  20.     system("pause>nul");
  21.  
  22.     return 0;
  23. }
  24.  

No hubo diferencia en ese simple ejemplo. Mi pregunta es: Hacen exactamente lo mismo? O existe alguna diferencia?


Título: Re: [Duda] ¿Existe alguna diferencia entre int(example); y (int) example;?
Publicado por: vangodp en 18 Septiembre 2013, 11:39 am
cuando pones c dentro de int() "int (c)" estas convertiendo c a enteros.
En el otro caso ni idea jeje



 cosa es que compila sin erroes OO que alguien nos explique eso jaja.
En la programacion cuando encierras algo entra () le estas dando prioridad a resolver lo encerrado pero esto es que es una paradoja estomacal jaja.

A esperar que vea uno de los veteranos jeje  ;-)


Título: Re: [Duda] ¿Existe alguna diferencia entre int(example); y (int) example;?
Publicado por: amchacon en 18 Septiembre 2013, 11:50 am
Código
  1. (int)

Esto es un cast al estilo C. Transforma el siguiente valor a entero.

Código
  1. int(c);

Una sintaxis alternativa.


Título: Re: [Duda] ¿Existe alguna diferencia entre int(example); y (int) example;?
Publicado por: eferion en 18 Septiembre 2013, 11:56 am
En la práctica, y para lo que importa, no hay diferencias.

Te puedes encontrar con problemas a la hora de utilizar "tipos compuestos" (long long por ejemplo ) al usar el cast funcional ( el segundo tipo ).

Código
  1. long long dato = long long(variable); // error

En cualquier caso, si estás trabajando en c++ evita este tipo de cast y céntrate en los cast propios de c++, son más seguros y limpios.


Título: Re: [Duda] ¿Existe alguna diferencia entre int(example); y (int) example;?
Publicado por: vangodp en 18 Septiembre 2013, 13:41 pm
ve si es que aqui hay maestros jeje... gracias compaeros, por eso me encanta este forito ;D


Título: Re: [Duda] ¿Existe alguna diferencia entre int(example); y (int) example;?
Publicado por: Zodiak98 en 18 Septiembre 2013, 16:29 pm
Código
  1. (int)

Esto es un cast al estilo C. Transforma el siguiente valor a entero.

Código
  1. int(c);

Una sintaxis alternativa.

Hehehe me paso por la cabeza también que a lo mejor uno formaba parte de la sintaxis de C y el otro de C++. Pero :d Gracias! Más vale estar seguros. :)