Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con redefinicion de una clase en C++

Estas en el tema de Problema con redefinicion de una clase en C++ en el foro de C/C++ en Foros del Web. Estaba programando una clase cuando al intentar compilar me salio un error curioso y no encuentro forma de arreglarlo. c:\dospro\proyectos\megaman\megaman\cSpriteManager .h(5) : error C2011: 'cSpriteManager' ...
  #1 (permalink)  
Antiguo 15/04/2006, 13:47
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 1 mes
Puntos: 52
Problema con redefinicion de una clase en C++

Estaba programando una clase cuando al intentar compilar me salio un error curioso y no encuentro forma de arreglarlo.

c:\dospro\proyectos\megaman\megaman\cSpriteManager .h(5) : error C2011: 'cSpriteManager' : 'class' type redefinition
c:\dospro\proyectos\megaman\megaman\cSpriteManager .h(5) : see declaration of 'cSpriteManager'

Dice que estoy redefiniendo la misma clase y pues donde? Ahi dice que en el mismo archivo en el mismo lugar la estoy redefiniendo y pues mirenlo ustedes mismos.

#ifndef CSPIRTEMANAGER
#define CSPRITEMANAGER
#include"cSprite.h"

class cSpriteManager {
cSprite *sprites;
int numOfSprites;
int maxNumOfSprites;
public:
cSpriteManager();
void loadSprites(void);
cSprite *getSprite(char *name);
void freeSprites(void);
};

#endif

No estoy redefiniendo nada. Este error me salio cuando quise pasar un objecto tipo cSpriteManager como referencia a una funcion de otro objeto. Pero al ver el error, quite el argumento, pero ya no se quito este error. Que paso?

Saludos
  #2 (permalink)  
Antiguo 15/04/2006, 14:18
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 19 años, 5 meses
Puntos: 24
En que entorno estas programando?
Busca la opcion de recompilar todo de nuevo, por lo general estos erroes se solucionas cuando haces un "rebuild all".

Saludos
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #3 (permalink)  
Antiguo 15/04/2006, 14:42
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 1 mes
Puntos: 52
Estoy usando Visual Studio 2005. Y si, desde una principio pense en lo de rebuild. Incluse use el Clena y luego build, pero me da el mismor error.
Tambien intente reiniciar el VS pero me da lo mismo.
No se exactamente que es esta mal, me dice que hay una refefiniciion de algo. pero donde, porque...

Saludos
  #4 (permalink)  
Antiguo 15/04/2006, 16:08
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 1 mes
Puntos: 52
Problema solucionado.
Chequen la idiotez que era.

#ifndef CSPIRTEMANAGER
#define CSPRITEMANAGER

Que suerte que no tarde en encontrarlo.

Saludos
  #5 (permalink)  
Antiguo 16/04/2006, 06:57
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 19 años, 5 meses
Puntos: 24
esta clase de errores les da a uno muchos dolores de cabez, ya que, como en tu caso instru, son dificiles de detectar.
Ya conocen el viejo error de comparacion en el if
cuando escribimos if(a=b)... cuando en realdiad quizimos decir if(a==b). Este error lo he cometido muchas veces, y siempre me cuesta darme cuenta.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #6 (permalink)  
Antiguo 16/04/2006, 09:37
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 8 meses
Puntos: 17
Cita:
Iniciado por TolaWare
esta clase de errores les da a uno muchos dolores de cabez, ya que, como en tu caso instru, son dificiles de detectar.
Ya conocen el viejo error de comparacion en el if
cuando escribimos if(a=b)... cuando en realdiad quizimos decir if(a==b). Este error lo he cometido muchas veces, y siempre me cuesta darme cuenta.
Los compiladores tienden a lanzar un Warning del último nivel cuando haces una asignación directa en un if.

Por eso conviene activar todos los Warnings.
  #7 (permalink)  
Antiguo 16/04/2006, 11:37
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 1 mes
Puntos: 52
Cita:
Los compiladores tienden a lanzar un Warning del último nivel cuando haces una asignación directa en un if.

Por eso conviene activar todos los Warnings.
Si, siempre te dicen "Esta condicion siempre da verdadero" o "falso" Y ya con eso sabes que ahi puede haber un problema.

Pero ya, asunto resuelto y sigo con este proyecto bastante bien.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:27.