【发布时间】:2010-11-28 12:45:45
【问题描述】:
这个该死的错误是一个众所周知的问题
“{”标记之前的预期类名
好吧,尽管我努力工作和谷歌搜索,我还是无法解决这个错误。对不起。这是我最后的海岸。
在我的一个项目的 ui.cpp 中:
#include "wfqueue_proxy_factory.hpp"
好的,这会在我的编译器中引发这个愚蠢的错误:
在包含的文件中 wfqueue_proxy_factory.hpp:29,来自 ui.cpp:28: wfqueue_manager_proxy.hpp:42:错误: “{”标记之前的预期类名
我的项目中有三个类: 首先
// 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
请注意我使用 ;在每节课的 } 之后,我检查了项目中的每个标题以查找此问题,但没有找到任何未跟随的类;在它的右括号之后。这对工作流.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_HPPinclude guard 吗? -
绝对没有其他文件有这个
标签: c++ class inheritance inclusion