このいまいましいエラーはよく知られている問題です
'{' トークンの前に期待されるクラス名
さて、一生懸命働いてグーグルで調べたにもかかわらず、このエラーを解決できませんでした。ごめん。これが私の最後の岸です。
私のプロジェクトの ui.cpp では、次のことを行います。
#include "wfqueue_proxy_factory.hpp"
OK、これは私のコンパイラでこのばかげたエラーを引き起こします:
wfqueue_proxy_factory.hpp:29 からインクルードされたファイルで、ui.cpp:28 から: wfqueue_manager_proxy.hpp:42: エラー: '{' トークンの前に期待されるクラス名
私のプロジェクトには 3 つのクラスがあります。
// wfqueue_proxy_factory.hpp
#ifndef _WFQUEUE_PROXY_FACTORY_HPP
#define _WFQUEUE_PROXY_FACTORY_HPP
#include "wfqueue_manager_proxy.hpp"
// ...
class WFQueueProxyFactory {
//...
};
#endif
2番
// 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
私が使用していることに注意してください。すべてのクラスの } の後、この問題を探してプロジェクトのすべてのヘッダーをチェックアウトしましたが、; が続かないクラスは見つかりませんでした。閉じ括弧の後。これは、単純なクラス (クラスから派生したものではなく、単純なクラス) である 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
この問題を解決する方法が本当にわかりません...助けてください。ありがとうございました