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


 


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  [RESUELTO]¿Porque no se muestran los datos? (clases)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [RESUELTO]¿Porque no se muestran los datos? (clases)  (Leído 634 veces)
trioper

Desconectado Desconectado

Mensajes: 7


who


Ver Perfil
[RESUELTO]¿Porque no se muestran los datos? (clases)
« en: 6 Mayo 2017, 20:12 »

Hola a todos, mi problema es que no se muestran los datos en este programa (es el saldo, linea 14 y linea 35) y no se como resolverlo, ya había echo uno antes sin constructor y si que me lo mostraba. Estoy aprendiendo c++. voy por los constructores de las clases y para reforzar lo que aprendo suelo ponerlo en practica pero en este caso nose..
Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3. //by trioper
  4. using namespace std;
  5.  
  6. string usr;
  7. int menu;
  8. int input;
  9.  
  10. void titulo();
  11.  
  12. class datos {
  13.  private:
  14.    int saldo;
  15.  public:
  16.    datos() {
  17.      cout<<" Usuario:";
  18.      getline(cin,usr);
  19.      cout<<"\n Usuario creado..."<<endl;
  20.    }
  21.    void meter(int a) {
  22.      saldo = a;
  23.    }
  24.    int mostrar() {
  25.      return saldo;
  26.    }
  27. };
  28.  
  29. int main()
  30. {
  31.  titulo();
  32.  datos objeto;
  33.  titulo();
  34.  cout<<" Saldo: ";
  35.  objeto.mostrar();
  36.  cout<<"\n\n 1) Meter"<<endl;
  37.  cout<<" 2) Salir"<<endl;
  38.  cout<<" Opcion: ";
  39.  cin>>menu;
  40.  titulo();
  41.  if(menu == 1)
  42.  {
  43.    cout<<endl<<" Cantidad a meter: ";
  44.    cin>>input;
  45.    objeto.meter(input);
  46.    main();
  47.  }
  48.  else if(menu == 2)
  49.  {
  50.    system("clear");
  51.    exit(0);
  52.  }
  53.  else
  54.  {
  55.    main();
  56.  }
  57. }
  58.  
  59. void titulo()
  60. {
  61.  system("clear");
  62.  cout<<" -Saldo usuario-"<<endl<<endl;
  63. }
  64.  

Si quereis compilar en windows, cambiad los "clear" por "cls"


« Última modificación: 6 Mayo 2017, 20:30 por trioper » En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 13.015



Ver Perfil
Re: ¿Porque no se muestran los datos? (clases)
« Respuesta #1 en: 6 Mayo 2017, 20:19 »

linea 35
Código
  1. objeto.mostrar();

Código
  1. int mostrar() {
  2.      return saldo;
  3. }

retornaste el saldo, ok... pero no haces nada con el... tendrías que guardarlo en una variable, haerle cout, hacer una cuenta matemática, algo...


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
trioper

Desconectado Desconectado

Mensajes: 7


who


Ver Perfil
Re: ¿Porque no se muestran los datos? (clases)
« Respuesta #2 en: 6 Mayo 2017, 20:48 »


           gracias david tennant XD, al final quedo asi
Código
  1. int main()
  2. {
  3.  titulo();
  4.  datos objeto;
  5.  objeto.mostrar(); //pongo el objeto en main
  6.  titulo();
  7.  cout<<" Saldo: "<<objeto.mostrar()<<endl; //y lo muestro con cout
En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 13.015



Ver Perfil
Re: [RESUELTO]¿Porque no se muestran los datos? (clases)
« Respuesta #3 en: 6 Mayo 2017, 21:22 »

ningún david! XD 10th doctor! XD

en el ultimo codigo, la linea 5 no es necesaria, no hace nada, realmente el objeto se crea en la 4 y se invoca mostrar en la 6
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
RevolucionVegana


Desconectado Desconectado

Mensajes: 477



Ver Perfil
Re: [RESUELTO]¿Porque no se muestran los datos? (clases)
« Respuesta #4 en: 7 Mayo 2017, 00:35 »

Buenas una pregunta, en el último código que has pasado (trioper) la línea 4 que dice:
Código
  1. datos objeto;
que hace exactamente? Está creando una instancia llamada "objeto" de la clase datos? Gracias un saludo!
En línea

Droguémonos.
engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 13.015



Ver Perfil
Re: [RESUELTO]¿Porque no se muestran los datos? (clases)
« Respuesta #5 en: 7 Mayo 2017, 00:46 »

si, está creando un objeto de tipo datos

por cierto, viendo el codigo en detalle...

main al ser int debe retornar, usualmente 0

haces el loop llamando a main, eso te puede hacer que el codigo falle al no saber cuantas recursiones caiga...

en 51 haces exit(0), sin embargo con return 0 basta y sería más apropiado

declaras variables globales innecesarias

usas stdlib.h que es una librería de C, la propiada sería cstdlib
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines