Error de Clase
Que tal estoy haciendo un programa de ajedrez pero tengo un problema, con esto:
class AJEDREZ
{
public:
AJEDREZ(void);
~AJEDREZ(void);
short int Dibuja_Casilla(char,short int);
short int Lugar_Vacio(char,short int,short int);
short int Reconoce_Pieza(char,short int,short int);
void Peon(char,short int,char,short int);
protected:
const char columna[]={'A','B','C','D','E','F','G','H'};
//Esta linea en la que declaro columna es la del error les pongo los errores abajo.
};
//Error PROGRA~1AJEDREZ.CPP 21: Cannot initialize a class member here
//Warning PROGRA~1AJEDREZ.CPP 28: Constant member 'columna' is not initialized
No se a que se deba pero cuando le quito los valores de {'A','B'....} se corrige el problema, que me pueden sugerir para resolver el problema.
Gracias de antemano.
class AJEDREZ
{
public:
AJEDREZ(void);
~AJEDREZ(void);
short int Dibuja_Casilla(char,short int);
short int Lugar_Vacio(char,short int,short int);
short int Reconoce_Pieza(char,short int,short int);
void Peon(char,short int,char,short int);
protected:
const char columna[]={'A','B','C','D','E','F','G','H'};
//Esta linea en la que declaro columna es la del error les pongo los errores abajo.
};
//Error PROGRA~1AJEDREZ.CPP 21: Cannot initialize a class member here
//Warning PROGRA~1AJEDREZ.CPP 28: Constant member 'columna' is not initialized
No se a que se deba pero cuando le quito los valores de {'A','B'....} se corrige el problema, que me pueden sugerir para resolver el problema.
Gracias de antemano.
Como columna[] se va a inicializar con las mismas constantes para cada objeto de la calase AJEDREZ, puedes hacerla static (garantizando que sólo existirá una única columna[] para todos).
Entonces, una vez que sea "static", puedes inicializarla fuera de la clase:
class AJEDREZ
{
public:
AJEDREZ(void);
~AJEDREZ(void);
short int Dibuja_Casilla(char,short int);
short int Lugar_Vacio(char,short int,short int);
short int Reconoce_Pieza(char,short int,short int);
void Peon(char,short int,char,short int);
protected:
// declaración:
static const char columna[]={'A','B','C','D','E','F','G','H'};
};
// inicialización:
const char AJEDREZ::columna[] = {'A','B','C','D','E','F','G','H'};
// Alejandro
Entonces, una vez que sea "static", puedes inicializarla fuera de la clase:
class AJEDREZ
{
public:
AJEDREZ(void);
~AJEDREZ(void);
short int Dibuja_Casilla(char,short int);
short int Lugar_Vacio(char,short int,short int);
short int Reconoce_Pieza(char,short int,short int);
void Peon(char,short int,char,short int);
protected:
// declaración:
static const char columna[]={'A','B','C','D','E','F','G','H'};
};
// inicialización:
const char AJEDREZ::columna[] = {'A','B','C','D','E','F','G','H'};
// Alejandro
No, todo mal... Va de nuevo (y me voy a dormir, lo juro)
class AJEDREZ
{
public:
AJEDREZ(void);
~AJEDREZ(void);
short int Dibuja_Casilla(char,short int);
short int Lugar_Vacio(char,short int,short int);
short int Reconoce_Pieza(char,short int,short int);
void Peon(char,short int,char,short int);
protected:
// declaración:
static const char columna[];
};
// inicialización:
const char AJEDREZ::columna[] = {'A','B','C','D','E','F','G','H'};
// espero que ahora sí...
// Alejandro
class AJEDREZ
{
public:
AJEDREZ(void);
~AJEDREZ(void);
short int Dibuja_Casilla(char,short int);
short int Lugar_Vacio(char,short int,short int);
short int Reconoce_Pieza(char,short int,short int);
void Peon(char,short int,char,short int);
protected:
// declaración:
static const char columna[];
};
// inicialización:
const char AJEDREZ::columna[] = {'A','B','C','D','E','F','G','H'};
// espero que ahora sí...
// Alejandro
