Cita: El código como lo posteaste no compila, ya que:
Código:
int elfo::atacar_t2(){
cout << "aaaarrrrggg..." << endl;
}
no está declarada en la clase elfo (tal vez la usaste de prueba pero habrá que comentarla/borrarla o declararla).
se me olvido borrarla, ya que en el original yo tenia puesto dos "trasgos" y borre el segundo para acortar el codigo para postearlo.
Cita: El primer punto que quiero tocar está en tus archivos de cabecera:
Código:
#include <iostream>
using namespace std;
#include <cstdlib> // versión C++ OK pero no se necesita
#include <stdlib.h> // versión C sale sobrando
¿y el include de string?
Lo necesario es que tengas:
Código:
#include <iostream>
#include <string>
using namespace std;
cstdlib si lo necesito por que es necesaria para rand()
por que es necesario include string? ami me funciona string sin poner eso...
Cita: Siguiente punto:
Código:
int atacar();
int defender();
int abandonar();
int muerto();
int atacar_t();
int defender_t();
int muerto_t();
Lo correcto es que estos métodos retornen un entero. Ejemplo:
Código:
int elfo::defender(){
cout << nombre << " se puso en posicion defensiva..." << endl;
return 1;
}
entonces no hace falta int... tendria que poner void?
Cita: Último punto y más importante:
En varios if's estás asignando y no comparando valores. Lo correcto:
Revisa el código y haz las correcciones necesarias para que funcione como esperas.
OJO: En el switch también has olvidado utilizar 'break'.
Saludos.
vale ahora entiendo por que cambiaba el valor xD
muchas gracias
fightmx, voy a probarlo y te cuento.
EDITO: ya lo he probado y funciona perfecto.