1

我在线收到 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 可以在其他地方使用

4

1 回答 1

2

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

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

于 2013-02-16T11:54:52.383 回答