您好,登錄后才能下訂單哦!
本篇內容介紹了“C++名稱空間特性是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
我們可以將名稱空間聲明進行嵌套:
namespace elements { namespace fire { int flame; ... } float water; }
我們觀察一下可以發現這里的flame
位于elements::fire
當中,所以當我們使用解析運算符使用它的時候寫成:elements::fire::flame。
同樣,我們也可以使用using編譯指令引入fire名稱空間:
using namespace elements::fire;
并且我們還可以把using編譯指令和using聲明應用在名稱空間當中:
namespace myth { using Jill::fetch; using namespace elements; using std::cout; using std::cin; }
假設我們要訪問Jill::fetch
,由于它已經被引入myth當中了,所以我們可以這樣訪問:
std::cin >> myth::fetch;
并且using編譯指令是可以傳遞的,A 引入了B,B引入了C,等價于A也引入了C。比如當我們運行using namespace myth
;,由于myth當中引入了elements
,等價于同時運行了這兩條:
using namespace myth; using namespace elements;
我們還可以給名稱空間創建別名,例如:
namespace my = myth::elements::fire; using my::flame;
在上面這個例子當中,我們將別名和名稱空間的嵌套結合在了一起使用。其實有一點像是將名稱空間當成是一種特殊變量處理的感覺。
我們還可以省略名稱空間的名稱來創建匿名名稱空間。
namespace { int ice; int bandy; }
它相當于后面跟著using
編譯指令一樣,也就是說匿名的名稱空間的潛在作用域為從聲明點到該聲明區域末尾。從這點來看,它與全局變量相似。但由于它是匿名的,所以無法在其他文件當中使用using
關鍵字引入,所以不能在其他文件使用,某種意義上有些類似于鏈接性為內部的靜態變量。
“C++名稱空間特性是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。