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..
#include <iostream>
#include <stdlib.h>
//by trioper
using namespace std;
string usr;
int menu;
int input;
void titulo();
class datos {
private:
int saldo;
public:
datos() {
cout<<" Usuario:";
getline(cin,usr);
cout<<"\n Usuario creado..."<<endl;
}
void meter(int a) {
saldo = a;
}
int mostrar() {
return saldo;
}
};
int main()
{
titulo();
datos objeto;
titulo();
cout<<" Saldo: ";
objeto.mostrar();
cout<<"\n\n 1) Meter"<<endl;
cout<<" 2) Salir"<<endl;
cout<<" Opcion: ";
cin>>menu;
titulo();
if(menu == 1)
{
cout<<endl<<" Cantidad a meter: ";
cin>>input;
objeto.meter(input);
main();
}
else if(menu == 2)
{
system("clear");
exit(0);
}
else
{
main();
}
}
void titulo()
{
system("clear");
cout<<" -Saldo usuario-"<<endl<<endl;
}
Si quereis compilar en windows, cambiad los "clear" por "cls"
linea 35
objeto.mostrar();
int mostrar() {
return saldo;
}
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...
gracias david tennant XD, al final quedo asi
int main()
{
titulo();
datos objeto;
objeto.mostrar(); //pongo el objeto en main
titulo();
cout<<" Saldo: "<<objeto.mostrar()<<endl; //y lo muestro con cout
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
Buenas una pregunta, en el último código que has pasado (trioper) la línea 4 que dice:
datos objeto;
que hace exactamente? Está creando una instancia llamada "objeto" de la clase datos? Gracias un saludo!
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