VC ++ 2010 C2061错误

时间:2013-02-16 11:45:33

标签: visual-c++

我在线获得VC ++ 2010 C2061错误:

#include "queryevaluator_p.h"

class QueryEvaluator {
public:
    vector<AttrValue>* getCandidateList(QueryClause cl, int pos, ResultSet *computedRes);
...
  

Error 41 error C2061: syntax error : identifier 'ResultSet' h:\dropbox\sch\cs3202\code\source\includes\queryevaluator.h 40

ResultSet是“queryevaluator_p.h”中定义的结构

struct ResultSet{ //a set of result
    bool valid;
    vector<ResultRow> rows;
};

这里有什么不对? ResultSet可以在别处使用

1 个答案:

答案 0 :(得分:2)

也许你有循环包含(queryevaluator_p.h再次包括主标题)导致混淆。根据确切的设置,这可能会产生这样的效果,因为必须首先编译其中一个文件。

解决方案是通过在一个地方使用前向声明而不是包含来解决循环依赖。例如,您可以转发声明struct ResultSet,而不是包含queryevaluator_p.h标题。