using 聲明:每次只引入命名空間的一個(gè)成員(using xxx::memeber)。其有效范圍從 using 聲明的地方開始,一直到 using 聲明所在的作用域結(jié)束為止。在此過程中,外層作用域的同名實(shí)體將被隱藏。
using 指示:以關(guān)鍵字 using 開始,加上 namespace 以及命名空間的名字(using namespace xxx)。using 指示使得某個(gè)特定的命名空間中所有的名字都可見,這樣我們就無須再為這些名字添加任何前綴限定符了。簡寫的名字從 using 指示開始,一直到 using 指示所在的作用域結(jié)束都能使用。
使用 using 指示存在的風(fēng)險(xiǎn):
1. 全局命名空間污染。如果應(yīng)用程序使用了多個(gè)不同的庫,通過使用 using 指示,命名空間中所有成員的名字都變得可見,這會導(dǎo)致二義性,也就是全局命名空間污染問題。
2. using 指示引發(fā)的二義性錯(cuò)誤只有在使用了沖突名字的地方才能被發(fā)現(xiàn)。這意味著可能在引入某個(gè)庫很久之后才會爆發(fā)沖突
相比于使用 using 指示,在程序中對命名空間的每個(gè)成員分別使用 using 聲明效果更好,這樣做一是可以減少注入到命名空間的名字?jǐn)?shù)量,二是 using 聲明引起的二義性問題在聲明處就能發(fā)現(xiàn),無須等到使用名字的地方,這對檢測并修改錯(cuò)誤有益。
更多關(guān)于“物聯(lián)網(wǎng)培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來試聽。