Il est une question bien connu cette erreur sacrémentImpossible nom de classe attendue avant « { » erreur jeton pour résoudre
nom de classe attendue avant « { » jeton
Eh bien, malgré mon travail dur et googler, Je n'ai pas pu résoudre cette erreur. Pardon. C'est ma dernière rive.
Dans ui.cpp d'un de mes projets que je fais:
#include "wfqueue_proxy_factory.hpp"
OK, cela soulève cette erreur stupide dans mon compilateur:
In file included from wfqueue_proxy_factory.hpp:29,from ui.cpp:28: wfqueue_manager_proxy.hpp:42: error: expected class-name before ‘{’ token
Il y a trois classes dans mon projet: Tout d'abord
// wfqueue_proxy_factory.hpp
#ifndef _WFQUEUE_PROXY_FACTORY_HPP
#define _WFQUEUE_PROXY_FACTORY_HPP
#include "wfqueue_manager_proxy.hpp"
// ...
class WFQueueProxyFactory {
//...
};
#endif
Deuxième
// wfqueue_manager_proxy.hpp
#ifndef _WFQUEUE_MANAGER_PROXY_HPP
#define _WFQUEUE_MANAGER_PROXY_HPP
#include "workflow.hpp"
#include "wfqueue.hpp"
// ...
class WFQueueManagerProxy : public WFQueue { // This is the problem (line 42)
//...
};
#endif
Troisième
// wfqueue.hpp
#ifndef _WFQUEUE_HPP
#define _WFQUEUE_HPP
#include "workflow.hpp"
class WFQueue {
// ...
};
#endif
S'IL VOUS PLAÎT S'IL VOUS PLAÎT S'IL VOUS PLAÎT noter que je l'utilise; après} de chaque classe, j'ai vérifié CHAQUE entête dans mon projet recherchant ce problème et n'ai trouvé aucune classe non suivie par; après son crochet de fermeture. Ceci est valable pour workflow.hpp qui est une classe simple (ne dérivant d'aucune classe, juste une classe ordinaire).
WFQueue est une sorte si l'interface, j'utilise ce modèle avec d'autres classes aussi et ils fonctionnent. WFQueue contient des méthodes virtuelles pures ... problème ne devrait pas être ici de toute façon .... Je suppose que cela parce que j'utilise une autre classe "interface" avec d'autres classes et ils fonctionnent bien.
Cette erreur disparaît si je fais ceci:
// wfqueue_manager_proxy.hpp
#ifndef _WFQUEUE_MANAGER_PROXY_HPP
#define _WFQUEUE_MANAGER_PROXY_HPP
#include "workflow.hpp"
#include "wfqueue.hpp"
// ...
class WFQueueManagerProxy {
//...
};
#endif
Je ne sais pas vraiment comment résoudre ce problème ... s'il vous plaît aidez-moi. Merci
Peut-être que je l'ai manqué, mais je ne vois rien de mal avec le code que vous avez fourni. Etes-vous sûr qu'aucun autre fichier d'en-tête n'a le même garde "_WFQUEUE_HPP"? – icecrime
ABSOLUMENT aucun autre fichier n'a cela – Andry
Que contient 'workflow.hpp'? –