我遇到了語法/解析錯誤,但似乎找不到它。「之前期望的構造函數,析構函數或類型轉換」<'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