2013-02-16 116 views
0

我正在上线VC++ 2010 C2061错误: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; 
}; 
定义一个struct

这里有什么问题吗? ResultSet可以在其​​他地方使用

回答

1

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

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