新聞中心
Visual C++ 6.0就是微軟公司推出的C++代碼開(kāi)發(fā)工具,是使用最廣的開(kāi)發(fā)工具。本節(jié)介紹Visual C++ 6.0工具的開(kāi)發(fā)環(huán)境和開(kāi)發(fā)流程,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。

后綴為.h的頭文件C++標(biāo)準(zhǔn)已經(jīng)明確提出不支持了,早些的實(shí)現(xiàn)將標(biāo)準(zhǔn)庫(kù)功能定義在全局空間里,聲明在帶.h后綴的頭文件里,c++標(biāo)準(zhǔn)為了和C區(qū)別開(kāi),也為了正確使用命名空間,規(guī)定頭文件不使用后綴.h。
因此,當(dāng)使用 時(shí),相當(dāng)于在c中調(diào)用庫(kù)函數(shù),使用的是全局命名空間,也就是早期的c++實(shí)現(xiàn);當(dāng)使用 的時(shí)候,該頭文件沒(méi)有定義全局命名空間,必須使用namespace std;這樣才能正確使用cout。#t#
一般一個(gè)C++代碼的老的帶“.h”擴(kuò)展名的庫(kù)文件,比如iostream.h,在新標(biāo)準(zhǔn)后的標(biāo)準(zhǔn)庫(kù)中都有一個(gè)不帶“.h”擴(kuò)展名的相對(duì)應(yīng),區(qū)別除了后者的好多改進(jìn)之外,還有一點(diǎn)就是后者的東東都塞進(jìn)了“std”名字空間中。
問(wèn)題在于C++要兼容C的標(biāo)準(zhǔn)庫(kù),而C的標(biāo)準(zhǔn)庫(kù)里碰巧也已經(jīng)有一個(gè)名字叫做“string.h”的頭文件,包含一些常用的C字符串處理函數(shù),比如樓主提到的strcmp。
這個(gè)頭文件跟C++的string類(lèi)半點(diǎn)關(guān)系也沒(méi)有,所以 并非 的“升級(jí)版本”,他們是毫無(wú)關(guān)系的兩個(gè)頭文件。
要達(dá)到樓主的目的,比如同時(shí):
- void func(){
- using namespace alex;//using指令
- using chris::love;//uisng聲明
- love();//chirs::love();
- alex::love();//必須這么使用
- }
因?yàn)闃?biāo)準(zhǔn)庫(kù)非常的龐大,所程序員在選擇的類(lèi)的名稱(chēng)或函數(shù)名時(shí)就很有可能和標(biāo)準(zhǔn)庫(kù)中的某個(gè)名字相同。所以為了避免這種情況所造成的名字沖突,就把標(biāo)準(zhǔn)庫(kù)中的一切都被放在名字空間std中。但這又會(huì)帶來(lái)了一個(gè)新問(wèn)題。無(wú)數(shù)原有的C++代碼都依賴(lài)于使用了多年的偽標(biāo)準(zhǔn)庫(kù)中的功能,他們都是在全局空間下的。
所以就有了 和 等等這樣的頭文件,一個(gè)是為了兼容以前的 C++代碼,一個(gè)是為了支持新的標(biāo)準(zhǔn)。 C++標(biāo)準(zhǔn)庫(kù)中所有的標(biāo)志府都被定義在一個(gè)名字空間std中,iostream也是標(biāo)準(zhǔn)庫(kù)中的頭文件,你查看一下include目錄,會(huì)發(fā)現(xiàn)又兩個(gè)頭文件iostream.h和iostream,其中iostream.h是C++以前的庫(kù),iostream是在名字空間std中的庫(kù),所以當(dāng)你包含頭文件并想使用頭文件中的標(biāo)志符的時(shí)候有兩種方法。
本文標(biāo)題:永遠(yuǎn)不會(huì)被和諧的C++代碼簡(jiǎn)單說(shuō)明
轉(zhuǎn)載注明:http://m.5511xx.com/article/coihhgd.html


咨詢(xún)
建站咨詢(xún)
