Hola a todos
estoy haciendo una clase para ir cambiando los turnos en una partida de trivial
la clase que utilizo es esta:
// fichero .h
class CTurno
{
//metodos
public:
CTurno();
virtual ~CTurno();
CTurno(int tA,int nT);
CTurno operator++();
// atributos
public:
int turnoActual;
int numTurnos;
};
// fichero .cpp
CTurno::CTurno()
{
}
CTurno::~CTurno()
{
}
CTurno::CTurno(int tA,int nT)
{
turnoActual=tA;
numTurnos=nT;
}
CTurno CTurno::operator ++()
{
turnoActual++;
if(turnoActual>numTurnos)turnoActual=0;
return *this;
}
el codigo compila bien
hago una instancia de CTurno
CTurno *turno;
turno=newCTurno(0,2);
y utilizo botones de la toolbox para ver si cambia bien de turnos
// en el primero pongo
turno++;
if (turno->turnoActual==1)MessageBox("hola"); // el hola es apra ver si llega a 1
// en el otro pongo el siguiente codigo para ver el valor actual del turno
int ver;
CString ca;
ver=turno->turnoActual;
ca.Format("%i",ver);
MessageBox(ca);
pues bien, obtengo los siguientes valores en sucesivas llamadas al primer comando que incrementa el turnoActual
0
// antes de pulsar, va bien
-572662307
// primer incremento
81
// segundo incremento
4335844
// tercer incremento
1 ¡¡¡¡¡
// y salta el MessageBox xD xD xD
bueno , despues de este rollo, a ver si alguien me puede echar una manita que esto me ha dejado noqueado
gracias