一、命名空間
1.引入
在C++中,變量、函數和類都是大量存在的,這些變量、函數和類的名稱將都存在于全局命名空間中,會導致很多沖突, 使用命名空間的目的是對標識符的名稱進行本地化,以避免命名沖突或名字污染,Namespace關鍵字的出現就是針對這種問題的。
2.定義
(1)命名空間的定義

(2)相同的命名空間可以分割在不同的文件中,編譯器最后都會合成在同一個命名空間下

(3)命名空間可以嵌套

(4)沒有名稱的命名空間(該命名空間的內容相當于全局變量)

說明:
(1)從本質上講,一個命名空間就定義了一個范圍,在命名空間中定義的任何東西都局限于該命名空間中。
(2)沒有名稱的命名空間可以只創建在聲明它的文件才可見的標識符。(只有在聲明這個命名空間的文件中,它的成員才是可見的,它的成員可以被直接訪問,不需要命名空間名稱來修飾。對于其它文件,該命名空間是不可見的)。
(3)把全局名稱的作用域限制在聲明他的文件中的一種方式就是把它的聲明為靜態的,盡管C++支持全局靜態,但最好的方式還是使用未命名的空間。
3.使用方式
(1)命名空間內直接使用

(2)命名空間名稱限制

(3)導入命名空間

(4)使用誰引入誰

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
函數
+關注
關注
3文章
4417瀏覽量
67501 -
C++
+關注
關注
22文章
2123瀏覽量
77110 -
變量
+關注
關注
0文章
616瀏覽量
29505
發布評論請先 登錄
相關推薦
熱點推薦
深入C++內存管理
說到 C++ 的內存管理,我們可能會想到棧空間的本地變量、堆上通過 new 動態分配的變量以及全局命名空間的變量等,這些變量的分配位置都是由系統來控制管理的,而調用者只需要考慮變量的生
發表于 11-12 09:29
?959次閱讀
一文初識C++
后接-一個或多個字符組成的。后綴告訴系統這個文件是一個C++程序。不同編譯器使用不同的后綴命名約定,最常見的包括. cc、.cxx、.cpp、.cp及.
發表于 07-17 15:14
?600次閱讀
C++筆記008:C++命名空間 namespace的作用和使用解析
定義了自己的命名空間就可以解決這個問題,即使重名,只要分屬不同的命名空間就不會引起問題。在 C語言中定義了3個層次的作用域,即文件(編譯單元
發表于 08-11 12:30
命名空間的實現
。更多信息請參見手冊頁unshare(2)。在進程已經使用上述的兩種機制之一從父進程命名空間分離后,從該進程的角度來看,改變全局屬性不會傳播到父進程命名
發表于 05-24 06:21
python常規包與命名空間包
python常規包與命名空間包1. 常規包在 Python 3.3 之前或者說 Python 2 中,一個包想要被導入使用,那么該包內必須要有 __init__.py 文件,這個文件是 Python
發表于 03-11 15:46
C++程序設計教程之C++工具的詳細資料說明
本文檔的詳細介紹的是C++程序設計教程之C++工具的詳細資料說明主要內容包括了:1. 異常處理,2. 命名空間,3. 使用早期的函數庫
發表于 03-14 16:39
?4次下載
C++程序設計的基礎知識初步了解C++的資料免費下載
本文檔的主要內容詳細介紹的是C++程序設計的基礎知識初步了解C++的資料免費下載包括了:1 認識C++,2 C++的現狀和發展,3
發表于 06-10 08:00
?25次下載
C++項目常見的命名規范
本系列是開源書C++ Best Practises[1]的中文版,全書從工具、代碼風格、安全性、可維護性、可移植性、多線程、性能、正確性等角度全面介紹了現代C++項目的最佳實踐。本文是該系列的第二篇。
C++入坑指南
C++最主要的用途是開發基礎軟件設施,和在有限資源的條件上運行的應用程序。因為它有一種獨特的能力,可以直接操作它所運行的硬件或者機器,即使在硬件空間資源受限的情況下,C++程序依舊可以
C++簡史:C++是如何開始的
MISRA C++:2023,MISRA? C++ 標準的下一個版本,來了!為了幫助您做好準備,我們介紹了 Perforce 首席技術支持工程師 Frank van den Beuken 博士撰寫
一文了解C++的命名空間
評論