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)
#define DEFAULT_BUFLEN 512
#ifndef __SERVERCLASS_H__
#define __SERVERCLASS_H__
class ServerClass
{
public:
static int CreateServer(HWND);
static int CloseServer();
char* getcbuffer();
int listensock();
private:
SOCKET ListenSocket;
SOCKET ClientSocket;
char recvbufx[DEFAULT_BUFLEN];
int recvbuflen;
};
#endif
El problema es que al compilar, me da dos errores algo extraños en las líneas 6 y 17:
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.
Pues a lo mejor tienes el proyecto configurado como uno de C.
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.