Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Chains en 22 Agosto 2013, 17:57 pm



Título: Problemas al definir una clase (Windows, GCC)
Publicado por: Chains en 22 Agosto 2013, 17:57 pm
Estoy intentando definir una clase para poder acceder a sus funciones desde otras clases. La clase debería ser estática, es decir, no debe ser instanciada.

Éste es el código de la cabecera (ServerClass.h)

Código
  1. #define DEFAULT_BUFLEN 512
  2. #ifndef __SERVERCLASS_H__
  3. #define __SERVERCLASS_H__
  4.  
  5. class ServerClass
  6. {
  7. public:
  8.    static int CreateServer(HWND);
  9.    static int CloseServer();
  10.    char* getcbuffer();
  11.    int listensock();
  12. private:
  13.    SOCKET ListenSocket;
  14.    SOCKET ClientSocket;
  15.    char recvbufx[DEFAULT_BUFLEN];
  16.    int recvbuflen;
  17. };
  18. #endif
  19.  

El problema es que al compilar, me da dos errores algo extraños en las líneas 6 y 17:

Código:
En linea 6: error: an anonymous struct cannot have function members
En linea 17: error: abstract declaratos '<anonymous class>' used as declaration

¿Por qué me detecta la clase como una estructura, si le he añadido la palabra 'class'? Es un proyecto en Code::Blocks para Windows, usando el compilador GNU GCC, y el proyecto es en C++, no en C.


Título: Re: Problemas al definir una clase (Windows, GCC)
Publicado por: 0xDani en 22 Agosto 2013, 19:46 pm
Pues a lo mejor tienes el proyecto configurado como uno de C.


Título: Re: Problemas al definir una clase (Windows, GCC)
Publicado por: Chains en 22 Agosto 2013, 19:53 pm
Jeje, no, no era de eso (lo había pensado). Acabo ahora mismo de encontrar la solución al problema. Por alguna razón el nombre de mi clase estaba haciendo algún conflicto con algo, y el compilador lo interpretaba como una estructura en vez de una clase.

Me ha bastado con cambiar el nombre de la clase, la he llamado "servman" en vez de "ServerClass", y el compilador ya ha dejado de quejarse. Había probado de todo, menos a cambiar el nombre de la clase.

Gracias por la ayuda, en cualquier caso.