2

在下面的 C++ 程序中,我包含了 string.h 文件,并成功地在其中实例化了 C++ 字符串类,并调用了它的成员函数之一: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是通过<iostream>标题中包含的文件之一定义的。流提供了对字符串的输入和输出的支持,因此它们需要包含一个字符串头来定义相应的>><<操作。

于 2012-09-20T02:40:22.420 回答