Это хорошо известная проблема эта проклятая ошибканевыполнима класс имя ожидаемый перед «{» маркера ошибки решить
ожидается имя класса, прежде чем «{» лексема
Ну, несмотря на мой трудолюбивым и прибегая к помощи, Я не мог решить эту ошибку. Сожалею. Это мой последний берег.
В ui.cpp проекта шахты я:
#include "wfqueue_proxy_factory.hpp"
ОК, это поднимает эту глупую ошибку в моем компиляторе:
In file included from wfqueue_proxy_factory.hpp:29,from ui.cpp:28: wfqueue_manager_proxy.hpp:42: error: expected class-name before ‘{’ token
Есть три класса в моем проекте: Первый
// wfqueue_proxy_factory.hpp
#ifndef _WFQUEUE_PROXY_FACTORY_HPP
#define _WFQUEUE_PROXY_FACTORY_HPP
#include "wfqueue_manager_proxy.hpp"
// ...
class WFQueueProxyFactory {
//...
};
#endif
Второй
// 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
Третий
// wfqueue.hpp
#ifndef _WFQUEUE_HPP
#define _WFQUEUE_HPP
#include "workflow.hpp"
class WFQueue {
// ...
};
#endif
ПОЖАЛУЙСТА ПОЖАЛУЙСТА ПОЖАЛУЙСТА, обратите внимание, что я использую; после} каждого класса, я проверил EVERY заголовок в моем проекте, который искал эту проблему, и не нашел ни одного класса, за которым не последовало; после его закрывающей скобки. Это справедливо для workflow.hpp, который является простым классом (не производным от какого-либо класса, просто простого класса).
WFQueue - это что-то вроде интерфейса, я использую этот шаблон и для других классов, и они работают. WFQueue содержит некоторые виртуальные чистые методы ... проблема не должна быть здесь в любом случае .... Я полагаю, это потому, что я использую другой класс «интерфейс» с другими классами, и они работают нормально.
Эта ошибка исчезает, если я это сделать:
// wfqueue_manager_proxy.hpp
#ifndef _WFQUEUE_MANAGER_PROXY_HPP
#define _WFQUEUE_MANAGER_PROXY_HPP
#include "workflow.hpp"
#include "wfqueue.hpp"
// ...
class WFQueueManagerProxy {
//...
};
#endif
Не знаю, как решить эту проблему ... пожалуйста, помогите мне. Спасибо
Возможно, я пропустил это, но я не вижу ничего плохого в коде, который вы предоставили. Вы уверены, что ни один другой заголовочный файл не имеет такой же `_WFQUEUE_HPP`, который содержит защитник? – icecrime 2010-11-28 12:52:27
АБСОЛЮТНО ни один другой файл не имеет этого – Andry 2010-11-28 13:18:17
Что находится в `workflow.hpp`? – 2010-11-28 13:22:23