1,名稱空間的定義
名稱空間可以把不同的方法分散到不同的檔案去實現,如果你會objective-C,他的作用和裡面的類目有異曲同工之妙。當然了也有很多不同的地方,首先要明白的是,名稱空間並不是一個類,你擴充套件他的方法並不是和類目一樣在擴充套件一個類的方法。
如果你學過NET開發,獲取你會對這個名稱空間有更好的理解。
2,名稱空間的寫法
namespace test
{
int value;
void printfStr();
} void test::printfStr()
{
std::cout<<"teststes";
}
我的習慣是一般會直接在名稱空間裡面定義函式或者類的成員方法,然後再名稱空間的外部去實現這些方法或者函式。這樣會使名稱空間看著更加的整潔。
namespace是定義名稱空間的關鍵字 test是名稱空間的名稱。
3,名稱空間的使用
int main(int argc, const char * argv[])
{ int value = 0;
using test::value;
}
如果名稱空間是在別的檔案中引用還需要在此檔案中匯入一句話
using namespace test;
這句話的作用,就是引用此名稱空間。
當然了,細心的哥們可能會意識到上面的這段程式碼有一些錯誤,就是
int value = 0;
using test::value;
這兩句會出現錯誤。
首先我們要明白,在名稱空間中定義的變數具有全域性性,如果你在該檔案中使用了此名稱空間,那麼此檔案中得變數名不能與此名稱空間有衝突的地方,如果兩個變數名稱相同的話會出現報錯的情況。
4,名稱空間的別名
namespace TT = test;
TT::printfStr();
上述是為一個名稱空間取別名的方法。
5,未名稱空間
namespace
{
int value;
int value1;
}
未名稱空間有一定的侷限性,只能在本檔案中使用。
每一個檔案中只能有一個未名稱空間
說了這麼多,我感覺未名稱空間有點和static類似.