clases me marea

Iniciado por flony, 13 Julio 2012, 23:26 PM

0 Miembros y 1 Visitante están viendo este tema.

flony

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
si un problema no tiene solucion entonces no es un problema...es algo inevitable

Stakewinner00

que es lo k kieres exactamente?

flony

quiero que el usuario pueda definir el objeto PerfilDelJugador...y cargarle datos a esa clase
si un problema no tiene solucion entonces no es un problema...es algo inevitable

dato000

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???



dac

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);

oxydec

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.