文章目錄
- 定義命名空間的格式
- 使用定義好的命名空間:
- 嵌套命名空間
- 不連續的命名空間
以前上課在Android studio上用java寫代碼的時候,有一個函式明明和書上一樣,但就是出錯,搗鼓了半天,原來是包導錯了,為了耍帥,手一快,package xxxxx 這個包就是java中的命名空間,剛學java的時候,老師總是會讓我們建一個包,但后來發現包這個東西,可有可無(其實是代碼寫的太少,根本不可能重名),
相對于java,C++更不是省油的燈,在C++中,變數、函式和類更是大量存在的,如果沒有命名空間,這些變數、函式、類的名稱將都存在于全域命名空間中,會導致很多沖突,所以C++也有它自己的命名空間,而類似于命名空間之類的知識點,大多數都需要我們建立在一定的代碼基礎上才能夠理解它(我相信剛開始有很多人不理解為什么要有C++),這也是為什么很多C++入門書剛開始只是說using namespace std 這個叫命名空間,加上就好,并沒有細說,
定義命名空間的格式
namespace dog{
//你的函式名,變數名
getcode();
int dog;
}
使用定義好的命名空間:
//可以使用using在代碼里面添加全部
using namespace dog;
dog = 1;
getcode();
//可以使用using指出單個要使用的變數或者函式
using dog::dog;
using dog::getcode();
dog = 1;
getcode();
//也可以在使用它們的時候添加單獨一個變數或者函式
dog::dog = 1;
dog::getcode();
using也是C++中的一個關鍵字,至于std,標準C++把自己的整個庫都定義在std命名空間中,
嵌套命名空間
就好像雙重for的寫法一樣,命名空間,也可以進行嵌套,
namespace animal {
//宣告
namespace person{
//宣告
}
}
//如果想使用person
using namespace animal::person;
//如果想使用animal(如同i定義在for的作用域相似,如果直接使用animal,那么person的宣告也在使用范圍之內,)
using namespace animal;
不連續的命名空間
命名空間可以定義在幾個不同的部分中,因此命名空間是由幾個單獨定義的部分組成的,一個命名空間的各個組成部分可以分散在多個檔案中,
//當在A檔案中有一個命名空間
namespace dog{
//代碼
}
//如果這時B檔案再定義一個相同的命名空間,在這之前,A中已經定義,所以在B中再次定義,可以理解為增加新元素
namespcae cat{
//代碼
}
CSDN認證博客專家
Qt
C
C++
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/260699.html
標籤:AI
上一篇:改進bp神經網路
