Olá, Eduardo
Parece que você está tendo um problema com a declaração forward e a herança em C++. Vamos tentar resolver isso juntos.
Primeiramente, é importante entender que a declaração forward é uma técnica usada para evitar dependências circulares entre arquivos de cabeçalho. No entanto, ela não é suficiente para habilitar a herança. Isso ocorre porque, para uma classe derivar de outra, o compilador precisa conhecer a definição completa da classe base, não apenas sua declaração.
No seu caso, você mencionou que está tentando herdar de cServer em cMain, cGlobal e cFileDB, mas está recebendo um erro de "classe base indefinida". Isso sugere que o compilador não tem a definição completa da classe cServer no momento em que está tentando compilar as classes derivadas.
A solução para o seu problema seria incluir o arquivo de cabeçalho cServer.h em cada um dos arquivos de cabeçalho das classes derivadas (cMain.h, cGlobal.h, cFileDB.h). Isso garantirá que o compilador tenha a definição completa da classe cServer quando estiver compilando as classes derivadas.
Aqui está um exemplo de como você pode fazer isso:
// cMain.h
#include "cServer.h"
class cMain : public cServer {
    // ...
};
// cGlobal.h
#include "cServer.h"
class cGlobal : public cServer {
    // ...
};
// cFileDB.h
#include "cServer.h"
class cFileDB : public cServer {
    // ...
};
Se você está preocupado em incluir o arquivo cServer.h em muitos lugares, uma prática comum é usar diretivas de pré-processador para garantir que o arquivo de cabeçalho seja incluído apenas uma vez. 
// cServer.h
#ifndef CSERVER_H
#define CSERVER_H
class cServer {
    // ...
};
#endif
Espero que isso resolva o seu problema. Lembre-se, a declaração forward é uma ferramenta útil para evitar dependências circulares, mas não é suficiente para permitir a herança. Para a herança, o compilador precisa da definição completa da classe base.
Espero ter ajudado e bons estudos!