2

以下のC++プログラムでは、string.hファイルをインクルードし、その中にC ++文字列クラスを正常にインスタンス化し、そのメンバー関数の1つであるsize()を呼び出します。

#include <iostream>
#include <string.h>
using namespace std;

int main( )
{
    string s = "Hello";
    cout << "String: " << s << endl;
    cout << "Size of string: " << s.size() << endl;
    cin.get();
    return 0;    
}

出力は次のとおりです。

String: Hello
Size of string: 5

Dev-C++4.9.9.2を使用しています

私の質問:string.hファイルはC文字列を操作するための関数を提供するだけではありませんか?C ++文字列クラスの定義は含まれていませんよね?では、使用せずにC ++文字列クラスにアクセスできるのは#include <string>どうしてですか?私の理解では、string.hファイルはC文字列ライブラリファイルであり<string>、C++文字列ライブラリファイルが含まれています。これは正しくありませんか?

ありがとう!

4

1 に答える 1

7

これは、ヘッダーstd::stringに含まれているファイルの1つを介して定義されているためです。<iostream>ストリームは文字列の入力と出力をサポートするため、対応する操作を定義するために文字列ヘッダーを含める必要があり>>ます<<

于 2012-09-20T02:40:22.420 に答える