C++ 中的名稱空間和類之間的區別


在本文中,我們將介紹 C++ 中名稱空間和類之間的差異。名稱空間和類是兩個不同的概念。類是資料型別。類基本上是結構的擴充套件版本。類可以包含成員資料和函式,但名稱空間可以透過將變數和函式分組到一個名稱空間中來包含它們。

名稱空間不能作為物件建立。此概念用作區分相似函式、類、變數等的附加資訊。名稱相同的變數和函式可以放在不同的名稱空間中。

現在,讓我們指出名稱空間和類的幾個重要區別。

  • 名稱空間用於對一些識別符號進行分組,以免出現衝突。透過使用類,我們必須建立一個該類的例項,但對於名稱空間則不然。

  • 我們對名稱空間使用“using”宣告。對於類,除非我們從其中派生,否則這是不可能的。

  • 我們可以重新開啟名稱空間並在不同翻譯單元中新增更多元素。這不能使用類來實現。

namespace my_namespace {
   int function1();
}
namespace my_namespace {
   int function1();
}
  • 對於類,以下程式碼是不好的

class my_class {
   int function1();
};
class my_class {
   int function1();
};
  • 我們可以使用未命名名稱空間(這是可以的),但我們不能使用未命名的類,這樣會產生錯誤。

namespace{ //Legal
   int function1();
};
class { //create error
   int function1();
};

更新日期:2019 年 7 月 30 日

5 千+ 瀏覽量

開啟你的 職業生涯

完成本課程並獲得認證

立即開始
廣告
© . All rights reserved.