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'。沒有擴展。 –