2
在下面的C++程序中,我包含了string.h文件,并且成功实例化了C++字符串类并调用其成员函数之一:size()。为什么通过string.h工作访问C++字符串类?
#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
我使用的开发-C++ 4.9.9.2
我的问题:不将文件string.h文件只是提供的功能操纵C字符串?它不包括C++字符串类的定义权利?那么,我怎样才能在不使用#include <string>
的情况下访问C++字符串类?我的理解是string.h文件是C字符串库文件,<string>
包含C++字符串库文件。这是不对的?
谢谢!
啊,我明白了。顺便说一下,对应于''的文件是什么?我的意思是,相应文件的名称和扩展名是什么? –
GigaRohan
@GigaRohan这是与系统相关的:在我的系统(OS X w/gcc编译器)中,从''包含的文件是'bits/stringfwd.h'。它通过一系列'istream' - >'ios' - >'iosfwd'间接包含在内。 –
dasblinkenlight
该标准并不要求它是一个文件,但在我的Mac上它只是'/ usr/include/C++/4.2.1/string'。没有扩展。 –