elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Aporte] Mostrar valor de variables privadas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Aporte] Mostrar valor de variables privadas  (Leído 1,434 veces)
elkiy

Desconectado Desconectado

Mensajes: 129


Porque yo soy yo.. y usted es usted.


Ver Perfil WWW
[Aporte] Mostrar valor de variables privadas
« en: 21 Febrero 2013, 21:37 pm »

Estaba estudiando y de repente me encontre con el problema de las variables privadas, funciones privadas y todo eso, como me resultó muy dificil entenderlo luego de aver probado varias veces lo entendí, asi que les dejo este programa que hice como ejemplo y mas abajo las aclaraciones.

Ejemplo

Main.cpp

Código
  1. #include <iostream>
  2. using std::cin;
  3. #include "Funciones.h"
  4.  
  5. int main()
  6. {
  7. Funciones Objeto;
  8. Objeto.PedirNombre();
  9. Objeto.PedirNumeros();
  10. Objeto.DecirNumeros();
  11. return 0;
  12. }
  13.  

Funciones.cpp

Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::endl;
  4. using std::cin;
  5. using std::fixed;
  6.  
  7. #include <string>
  8. using std::string;
  9. using std::getline;
  10.  
  11. #include <iomanip>
  12. using std::setprecision;
  13.  
  14. #include "Funciones.h"
  15.  
  16. void Funciones::PedirNombre()
  17. {
  18. cout << "Ingrese su nombre: ";
  19. string Nombre;
  20. getline (cin , Nombre);
  21. cout << "\nBienvenido " << Nombre << endl;
  22. NombreUsuario = Nombre;
  23. }
  24. void Funciones::PedirNumeros()
  25. {
  26.    cout << "Bueno " << NombreUsuario << " vamos a hacer unas cuentas" << endl;
  27. cout << "Vamos a tener 3 numeros, dos numeros del tipo entero y el otro con decimales"
  28. << endl;
  29. cout << "Empeza a ingresar los numeros: \n"
  30. << "Primero numero entero: ";
  31. cin >> numero1;
  32. cout <<"\nSegundo numero entero: ";
  33. cin >> numero2;
  34. cout << "\nTercer numero, que contenga decimales: ";
  35. cin >> numero3;
  36. cin.get();
  37. }
  38.  
  39. void Funciones::DecirNumeros()
  40. {
  41. cout << "\nLos numeros Ingresados son:\n";
  42. cout << numero3 <<" " << numero2 << " " << numero1 << " " << endl;
  43. cout << "Vamos a hacer que " << numero3 << " sea igual a:\n "
  44. << numero1 << " dividido " << numero2;
  45. cout << " el resultado seria: " << numero1 / numero2;
  46. cout << " como ve se perdio los decimales, ahora no se perderan\n";
  47. numero3= static_cast<double>(numero1) / numero2;
  48. cout << "Resultado Original: " << setprecision(2) << fixed << numero3 << endl;
  49. Terminar(); // llamo a la funcion que si va a devolver el valor
  50. cin.get();
  51. }
  52.  
  53. void Funciones::Terminar()
  54. {
  55. cout << "Gracias: " << NombreUsuario; // imprimo el valor desde una funcion private
  56. cin.get();
  57. }

Funciones.h

Código
  1. #include <iostream>
  2. #include <string>
  3. using std::string;
  4.  
  5. class Funciones
  6. {
  7. public:
  8. void PedirNombre();
  9. void PedirNumeros();
  10. void DecirNumeros();
  11. int numero1;
  12. int numero2;
  13. double numero3;
  14. private:
  15. string NombreUsuario; // una misma variable
  16. void Terminar(); // la funcion que hice
  17. };
  18.  

A tener en cuenta:

Desde una funcion publica se puede cambiar el valor de una variable privada
Desde una una funcion publica se puede mostrar el valor de una variable privada
Desde una funcion publica se puede llamar a una funcion privada
Desde una funcion privada se puede cambiar el valor y mostrar el valor de una variable privada


« Última modificación: 21 Febrero 2013, 22:21 pm por 1996marioful » En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [Aporte] Mostrar valor de variables privadas
« Respuesta #1 en: 21 Febrero 2013, 22:02 pm »

Desde una una funcion publica no se puede mostrar el valor de una variable privada
Falso, esta sentencia es totalmente válida:

Código
  1. class Ejemplo
  2. {
  3. private:
  4.            int Variable;
  5. public:
  6.           int ObtenerVariable(){ return Variable;}
  7. };

El problema es mucho más sutil que eso:

Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::cin;
  4.  
  5. #include <string>
  6. using std::string;
  7. using std::getline;
  8.  
  9. #include "cabezal.h"
  10.  
  11. tunombrefuncion::tunombrefuncion(string nombre)
  12. {
  13. Establecernombre(nombre);
  14. }
  15. void tunombrefuncion::Establecernombre(string Enombre)
  16. {
  17.   if (Enombre.length() <= 25)
  18.   {
  19.      nombrepersona = Enombre;
  20.   }
  21.   else
  22.   {
  23.      Enombre.substr (0 , 25);
  24.      nombrepersona = Enombre;
  25.   }
  26. }
  27. string Darnombre()
  28. {
  29.  return nombrepersona;

Te falta una llave al final. Además tendrías que escribir string tunombrefuncion::DarNombre()


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
elkiy

Desconectado Desconectado

Mensajes: 129


Porque yo soy yo.. y usted es usted.


Ver Perfil WWW
Re: [Aporte] Mostrar valor de variables privadas
« Respuesta #2 en: 21 Febrero 2013, 22:08 pm »

Falso, esta sentencia es totalmente válida:

Código
  1. class Ejemplo
  2. {
  3. private:
  4.            int Variable;
  5. public:
  6.           int ObtenerVariable(){ return Variable;}
  7. };

El problema es mucho más sutil que eso:

Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::cin;
  4.  
  5. #include <string>
  6. using std::string;
  7. using std::getline;
  8.  
  9. #include "cabezal.h"
  10.  
  11. tunombrefuncion::tunombrefuncion(string nombre)
  12. {
  13. Establecernombre(nombre);
  14. }
  15. void tunombrefuncion::Establecernombre(string Enombre)
  16. {
  17.   if (Enombre.length() <= 25)
  18.   {
  19.      nombrepersona = Enombre;
  20.   }
  21.   else
  22.   {
  23.      Enombre.substr (0 , 25);
  24.      nombrepersona = Enombre;
  25.   }
  26. }
  27. string Darnombre()
  28. {
  29.  return nombrepersona;

Te falta una llave al final. Además tendrías que escribir string tunombrefuncion::DarNombre()
si se que me falta una llave hay y eso de escribir string, lo mas importante son los errores que me tiraba, estas seguro de que se puede hacer esto? y con cualquier tipo de variable, si es asi es muy raro porque me tiraba error en eso. :(
En línea

elkiy

Desconectado Desconectado

Mensajes: 129


Porque yo soy yo.. y usted es usted.


Ver Perfil WWW
Re: [Aporte] Mostrar valor de variables privadas
« Respuesta #3 en: 21 Febrero 2013, 22:17 pm »

si se que me falta una llave hay y eso de escribir string, lo mas importante son los errores que me tiraba, estas seguro de que se puede hacer esto? y con cualquier tipo de variable, si es asi es muy raro porque me tiraba error en eso. :(

EDIT: me fijé recien y se puede ahora lo edito :D
En línea

anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: [Aporte] Mostrar valor de variables privadas
« Respuesta #4 en: 21 Febrero 2013, 22:49 pm »

repasate la sección clases , public privadas y protected lo que no podrias hacer con las privadas es llamarlas externamente
En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Orientacion sobre como leer variables privadas de otro proceso
Ingeniería Inversa
silverius2 0 1,241 Último mensaje 23 Noviembre 2005, 20:08 pm
por silverius2
Mostrar valor numerico en MessageBopx (ASM)
ASM
Riki_89D 8 4,421 Último mensaje 16 Octubre 2009, 22:35 pm
por Riki_89D
No veo el valor de las variables
Programación C/C++
jairogon 1 1,268 Último mensaje 29 Mayo 2010, 09:07 am
por nicolas_cof
C++ Duda: [Cin] No mostrar el valor introducido en pantalla
Programación C/C++
Orcbull 2 1,200 Último mensaje 2 Diciembre 2012, 13:58 pm
por Orcbull
variables privadas, duda!!
Programación C/C++
pablombf 0 922 Último mensaje 15 Enero 2018, 03:16 am
por pablombf
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines