2010-11-30 9 views
0

ヘッダーファイルに文字列を作成しようとすると、エラーが発生します。 'string'は 'std'のメンバーではありません。私はMicrosoft Visual C++ express 2010コンパイラを使用しています。ここに私のヘッダファイルには、次のとおりです。C++で文字列を作成する際のエラー

using namespace std; 

class Person 
{ 
private: 
string name; 
string p_number; 

public: 
Person(); 
Person(string, string); 
string get_number(); 
string get_name(); 
}; 

私はちょうどC++

+1

を#includeしましたか? – Tom

+0

@Tom:答えとして追加してください。 – Default

答えて

4

を習い始め、まともなJavaプログラマ午前また、あなたのヘッダーに#include <string>を持っていますか?文字列クラスの宣言のために必要です。

+0

ありがとう、これは私の問題を解決しました。メインファイルに#を含める必要があるのはなぜですか?私のメインファイルに含まれている唯一のもの

+0

@Daniel:あなたのメインファイルにあなたのヘッダファイルが含まれていれば、実質的に ''をメインファイルに含めることになります。 –

+1

@Daniel:C++では、標準ヘッダーには他の標準ヘッダーを含めることができます(必須ではありません)。したがって、メインファイルに ''が含まれていると、実装に依存関係があるため、おそらく ' 'になります。 –

1

#include <string>が必要です。

#include <string> 

std::stringを使用する:

2

あなたは、このような文字列ファイルを含める必要があります。

これは、Javaがクラス/名前空間、C++インポートライブラリ、またはヘッダーファイルをインポートする点を除いて、Javaのインポートと似ています。

1

は、ファイルの先頭に

#include <string> 

を入れてください。

0
using std::string; 

は、私は通常、全体ではなく、ヘッダファイルを含めて、次の好む、stringヘッダに存在する不要な宣言と定義は含まれませんとだけコンパイラの検索に参考になると罰金コンパイルします:

using std::cout; 
using std::cin; 
using std::endl; 

*例としてのみです。

関連する問題