我遇到了语法/解析错误,但我似乎无法找到它。
DataReader.h:11:错误:在'<'之前的预期构造函数,析构函数或类型转换令牌
这是DataReader.h:
#include <fstream>
#include <iostream>
#include <vector>
#ifndef DATA_H
#define DATA_H
#include "Data.h"
#endif
vector<Data*> DataReader(); // This is line 11, where the error is..
这是.cpp文件:
#include "DataReader.h"
using namespace std;
vector<Data*> DataReader()
{
.....
}
我跳过了DataReader()的内容,因为我认为它无关紧要,但我可以在需要时发布它。
感谢您的任何意见/建议。
答案 0 :(得分:6)
在您的标头文件中,您需要明确使用std::vector
,而不仅仅是vector
。
另外,我猜测“Data.h”包含以下形式的语句:
#ifndef DATA_H
#define DATA_H
...
#endif
没关系,但你不应该在#include "Data.h"
之间使用这些包含警卫,只能在文件本身内使用。
答案 1 :(得分:4)
在您的标头文件中,您需要在函数std::vector
的声明中使用vector
而不是普通DataReader
。
标准包括<vector>
会导致在vector
命名空间中定义std
类模板,并且头文件中的声明会在任何using namespace std;
或{{1}之前发生}}
答案 2 :(得分:4)
我认为在您的标题中,您可能需要编写std::vector<Data*> DataReader();
,因为using namespace std;
不在范围内。
答案 3 :(得分:1)
在Datareader之前使用std:vector而不是vector。