Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: flony en 13 Julio 2012, 23:26 PM

Título: clases me marea
Publicado por: flony en 13 Julio 2012, 23:26 PM
hola amigos estaba practicando un poco con clases la cuestión es que después de meterle mano al asunto no le encuentro la vuelta...a se que el code tiene errores pero es lo que voy haciendo...si me dan una mano estaria genial
#include<iostream>
using namespace std;
class PerfilDelJugador
{
private:
int  PuntosCiviles;
int  PuntosMilitares;
int  Honor;
int  SoldadosPropiosPerdidos;
int  SoldadosEnemigosMuertos;

public:
//constructor
PerfilDelJugador (int a , int b, int c, int d, int e )
{
PuntosCiviles=a; PuntosMilitares=b; Honor=c;
SoldadosPropiosPerdidos=d;
    SoldadosEnemigosMuertos=e;
};
//destructor
~PerfilDelJugador(){}
//acceso encapsulamiento
int get_PuntosCiviles (void){return PuntosCiviles;}
int get_PuntosMilitares (void) {return PuntosMilitares;}
int get_Honor (void) {return Honor;}
int get_SoldadosPropiosPerdidos (void){return SoldadosPropiosPerdidos;}
};
void cargar()
{
char NombreJugador [50];
cout<< "ingrese el nombre del jugador"<<endl;
cin>>NombreJugador;
PerfilDelJugador NombreJugador;
cout<< " ingrese los puntos civiles"<< endl;
cin>>NombreJugador.a;
cout<< "ingrese los puntos militares";
cin>>NombreJugador.b;
cout<< "ingrese los puntos de honor";
cin>>NombreJugador.c;
cout>>"ingrese los soldados propios perdidos";
cin>>NombreJugador.d;

}

lo que quiero es que el ususario defina el objeto PerfilDelJugador   a su vez ingrese unos datos
Título: Re: clases me marea
Publicado por: Stakewinner00 en 14 Julio 2012, 00:05 AM
que es lo k kieres exactamente?
Título: Re: clases me marea
Publicado por: flony en 14 Julio 2012, 02:43 AM
quiero que el usuario pueda definir el objeto PerfilDelJugador...y cargarle datos a esa clase
Título: Re: clases me marea
Publicado por: dato000 en 14 Julio 2012, 17:33 PM
De verdad hace falta el resto del codigo (main), umm la verdad no habia visto que se pudieran hacer private y public en c++, estas encapsulando???
Título: Re: clases me marea
Publicado por: dac en 14 Julio 2012, 18:39 PM
Pues no entiendo bien lo que estas haciendo o.O ... pero del codigo veo que en la funcion cargar en la instancia $NombreJugador de la clase PerfilDelJugador haces referencia  avariables a,b,c,etc que no existen en la clase.. no estoy seguro.. pero que te parece algo así:

char NombreJugador [50];
int a,b,c,d;
   cout<< "ingrese el nombre del jugador"<<endl;
   cin>>NombreJugador;
   cout<< " ingrese los puntos civiles"<< endl;
   cin>>a;
   cout<< "ingrese los puntos militares";
   cin>>b;
   cout<< "ingrese los puntos de honor";
   cin>>c;
   cout>>"ingrese los soldados propios perdidos";
   cin>>d;
        PerfilDelJugador NombreJugador(a,b,c,d);
Título: Re: clases me marea
Publicado por: oxydec en 14 Julio 2012, 18:45 PM
No he probado el codigo pero veo unos cuantos errores a simple vista

Código (cpp) [Seleccionar]

PerfilDelJugador NombreJugador;


Esto llama a un constructor sin argumentos que no has definido, para inicializar tu objeto tendrias que hacer algo como

Código (cpp) [Seleccionar]
PerfilDelJugador pdj(a, b, c, d, e); // o bien
PerfilDelJugador* pdj = new PerfilDelJugador(a, b, c, d, e); // si quieres trabajar con punteros


Cuando lees los puntos te dara error porque intentas escribir atributos que no existen, lo que tendrias que hacer es guardar los valores en variables tipo int y luego instanciar la clase pasandole esas variables al constructor del modo que te he comentado mas arriba.

P.D. Veo que ya te ha contestado el compañero aix741, el codigo que te ha puesto es a lo que me referia.