0

エラーの修正を探していますが、どこにも私のケースが見つかりません。だから私は機能を持っています

int getUniques(Visitors info[], string address, string startDate, string endDate);

この関数は、クラス オブジェクトでいっぱいの配列と 3 つの文字列を取り込みます。ビルドしようとすると、さまざまなエラーが発生します。それらをすべてリストします。

「訪問者」はこのスコープで宣言されていません

'address' の前にプライマリ式が必要です (他の文字列についても同様です)

初期化子で複合式として扱われる式リスト

これらの意味と修正方法を知っている人はいますか?

編集:笑私は自分がとても愚かであることを知っています。私は今それを修正しましたが、私が導きたい他の問題があります。それでも自分の方法が機能しない場合は、投稿をやり直して、しばらくしてから再投稿します。

4

2 に答える 2

2

これらのエラーは名前Visitorsを意味し、 stringC++ コンパイラによって型として認識されませんでした...

機能するためには、型の宣言がVisitors関数宣言の前にある必要があります。同じソース ファイルまたは#includeプリプロセッサ ディレクティブに含まれるヘッダー ファイルのいずれかに含まれます。

また、C++string型は標準ヘッダー ファイルstringで定義されており、使用する前に含める必要があり、型は名前空間stdに含まれているため、完全な名前を使用するか、ディレクティブstd::stringで使用していることを宣言する必要があります。using

#include <string>
#include "visitors.hpp"

using std::string;

int getUniques(Visitors info[],
               string address,
               string startDate,
               string endDate);

ファイル内ではvisitors.hpp、型定義 (おそらく aですが、 a 、 an 、 anまたは aを他の型にclassすることもできます)...structunionenumtypedef

#pragma once

class Visitors {
     ... // Your class definition.
};

usingヘッダー ファイルでディレクティブを使用することは、ヘッダーを含むコンパイル ユニットの既定の名前空間を汚染するため、悪い習慣であることに注意してください。その場合は、フルネームを使用する必要がありますstd::string

于 2013-04-16T03:32:27.433 に答える