C++中的命名空间
文章目錄
- 1 C++中的命名空間
- 1.1 命名空間的基本概念
- 1.2 C++命名空間的定義
- 1.3 C++命名空間的使用
1 C++中的命名空間
1.1 命名空間的基本概念
在C語言中只有一個全局作用域:
- C語言中所有的全局標識符共享同一個作用域
- 標識符之間可能發生沖突。
C++中提出了命名空間的概念:
- 命名空間將全局作用域分成不同的部分;
- 不同命名空間中的標識符可以同名而不會發生沖突;
- 命名空間可以相互嵌套;
- 全局作用域也叫默認命名空間。
注意:不同的命名空間中可以定義相同命名的全局變量和函數,但是調用的時候必須采用 命名空間名字::標識符名 這種方式進行訪問。否則會編譯報錯。
1.2 C++命名空間的定義
namespace name {namespace name{/*………*/}/*…………*/ }1.3 C++命名空間的使用
使用如下:
- 使用整個命名空間:using namespace name;
- 使用命名空間中的變量:using name::variable;
- 使用默認命名空間中的變量:::variable。
實例分析:命名空間的使用
#include <stdio.h>namespace First {int i = 0; }namespace Second {int i = 1;namespace Internal{struct P{int x;int y;};} }int main() {using namespace First;using Second::Internal::P;// 如果只是using namespace Second,是無法直接使用P的,需要通過Internal::P這種形式來使用printf("First::i = %d\n", i);printf("Second::i = %d\n", Second::i);P p = {2, 3};printf("p.x = %d\n", p.x);printf("p.y = %d\n", p.y);return 0; }C++中的命名空間概念用于解決名稱沖突問題。
參考資料:
總結
- 上一篇: 苹果怎么进入win7系统还原 如何进入W
- 下一篇: C++中struct和class关键字的