2009-07-10 1 views
0

文字列クラスが文字列ヘッダーにあることがSTLリファレンスで示されています。ヘッダーを含めずに、次のプログラムがエラーなく実行されている方法は?#includeなしで文字列を使用する方法<string>?

#include<iostream> 

using namespace std; 

int main() { 
    string s; 
    cin>>s; 
    cout<<"string entered is : "<<s; 
} 

私はubuntuマシンでg ++コンパイラを使用しています。

答えて

7

おそらくiostream自体がそのコンパイラのライブラリの実装でstringを含んでいるからです。しかし、他のライブラリの実装ではそうではありません。 MicrosoftのVC++ではこれを許可していません。

コンパイラごと、バージョンごとに異なるので、そのような暗黙的なインクルードに頼るべきではありません(私は現在、Visual Studio 2010でいくつかの古いstd :: C++コードをビルドしようとしています。

0

これは、すでにiostreamにはstringが含まれているためです。

関連する問題