永遠不會被和諧的C++代碼簡單說明
Visual C++ 6.0就是微軟公司推出的C++代碼開發(fā)工具,是使用最廣的開發(fā)工具。本節(jié)介紹Visual C++ 6.0工具的開發(fā)環(huán)境和開發(fā)流程,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
后綴為.h的頭文件C++標(biāo)準(zhǔn)已經(jīng)明確提出不支持了,早些的實現(xiàn)將標(biāo)準(zhǔn)庫功能定義在全局空間里,聲明在帶.h后綴的頭文件里,c++標(biāo)準(zhǔn)為了和C區(qū)別開,也為了正確使用命名空間,規(guī)定頭文件不使用后綴.h。
因此,當(dāng)使用
一般一個C++代碼的老的帶“.h”擴展名的庫文件,比如iostream.h,在新標(biāo)準(zhǔn)后的標(biāo)準(zhǔn)庫中都有一個不帶“.h”擴展名的相對應(yīng),區(qū)別除了后者的好多改進之外,還有一點就是后者的東東都塞進了“std”名字空間中。
問題在于C++要兼容C的標(biāo)準(zhǔn)庫,而C的標(biāo)準(zhǔn)庫里碰巧也已經(jīng)有一個名字叫做“string.h”的頭文件,包含一些常用的C字符串處理函數(shù),比如樓主提到的strcmp。
這個頭文件跟C++的string類半點關(guān)系也沒有,所以
要達到樓主的目的,比如同時:
- void func(){
- using namespace alex;//using指令
- using chris::love;//uisng聲明
- love();//chirs::love();
- alex::love();//必須這么使用
- }
因為標(biāo)準(zhǔn)庫非常的龐大,所程序員在選擇的類的名稱或函數(shù)名時就很有可能和標(biāo)準(zhǔn)庫中的某個名字相同。所以為了避免這種情況所造成的名字沖突,就把標(biāo)準(zhǔn)庫中的一切都被放在名字空間std中。但這又會帶來了一個新問題。無數(shù)原有的C++代碼都依賴于使用了多年的偽標(biāo)準(zhǔn)庫中的功能,他們都是在全局空間下的。
所以就有了