4

構文/解析エラーが発生していますが、見つからないようです。

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()の内容は関係ないと思うのでスキップしましたが、必要に応じて投稿できます。

入力/提案をありがとう。

4

4 に答える 4

6

std::vectorヘッダーファイルでは、だけでなく明示的に使用する必要がありますvector

また、「Data.h」には次の形式のステートメントが含まれていると思います。

#ifndef DATA_H
#define DATA_H
...
#endif

#include "Data.h"それは問題ありませんが、ファイル自体の中でのみ、これらのインクルードガードを使用しないでください。

于 2009-11-02T07:56:41.930 に答える
4

ヘッダーファイルでは、関数の宣言で使用する必要があり、わかりにくいものではstd::vectorありません。vectorDataReader

標準のインクルード<vector>により、vectorクラステンプレートが名前空間で定義され、ヘッダーファイルでの宣言がまたstdはの前に行われます。using namespace std;using std::vector;

于 2009-11-02T07:57:40.793 に答える
4

std::vector<Data*> DataReader();範囲内にないため、ヘッダーに書き込む必要があると思いますusing namespace std;

于 2009-11-02T07:58:15.563 に答える
1

Datareaderの前にvectorではなくstd:vectorを使用します。

于 2009-11-02T07:58:42.223 に答える