Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]
#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.
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.