C++中與的區別

在C++中爲了兼容C頭文件有xxxx.h頭文件。#include<xxxxxx>是C++的頭文件,#include<xxxx.h>是C的頭文件。

 

iostream.h裏面定義的所有類以及對象都是在全局空間裏,所以你可以直接用cout   
但在iostream裏面,它所定義的東西都在名字空間std裏面,所以你必須加上   
using namespace std才能使用cout

一般一個C++的老的帶“.h”擴展名的庫文件,比如iostream.h,在新標準後的標準庫中都有一個不帶“.h”擴展名的相對應,區別除了後者的好多改進之外,還有一點就是後者的東東都塞進了“std”名字空間中。

但唯獨string特別。
問題在於C++要兼容C的標準庫,而C的標準庫裏碰巧也已經有一個名字叫做“string.h”的頭文件,包含一些常用的C字符串處理函數,比如樓主提到的strcmp。
這個頭文件跟C++的string類半點關係也沒有,所以<string>並非<string.h>的“升級版本”,他們是毫無關係的兩個頭文件。

 

#include<string>與。#include<string.h>沒有什麼關係。若用cin、cout進行string類型的輸入輸出,需要加頭文件#include<string>。否則會出現"<<"、">>"操作符沒有定義的錯誤。

<string>是c++ 的頭文件,其內包含了一個string類,string s1就是建立一個string類的對象 

<string.h> 的c語言的東西 並無類,所以不能 string s1 

<cstring>文件實際上只是在一個命名空間std中include了 <string.h>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章