在下面的 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++ 字符串类的定义,对吗?那么,我是如何在不使用 #include <string>
的情况下访问 C++ 字符串类的呢? ?我的理解是string.h文件是C字符串库文件,<string>
包括 C++ 字符串库文件。这不对吗?
谢谢!
最佳答案
这是因为 std::string
通过 <iostream>
中包含的文件之一定义 header 。流提供了对字符串输入和输出的支持,所以它们需要包含一个字符串头来定义相应的>>
。和 <<
操作。
关于c++ - 为什么通过 string.h 访问 C++ 字符串类有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12505403/