我遇到了语法/解析错误,但似乎找不到它。“之前期望的构造函数,析构函数或类型转换”<'token“
DataReader.h:11: error: expected constructor, destructor, or type conversion before '<' token
这里是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()的内容,因为我认为这是无关紧要的,但如果需要,我可以发布它。
感谢您的任何意见/建议。
即在Data.h本身的顶部有#ifndef ... #define ....,在这个文件的结尾有#endif。 (所以引用这个头文件的所有可能的文件都不需要写这几行)。但这只是一种风格提示,与编译错误无关。 – mjv 2009-11-02 08:01:40
如果包含的文件具有'#ifndef'警卫,并且基于与外层'#ifndef'相同的宏,那么在'#include'之前没有'#define'行是至关重要的,否则就会导致头文件将永远不会被包含。 – 2009-11-02 08:05:20