【小白学习C++ 教程】十三、C++命名空间namespace
@Author:Runsen
文章目錄
- 訪問命名空間
- 嵌套命名空間
- 命名空間別名
任何C++程序都有聲明namespace,比如下面的C++程序沒有聲明namespace
int main() {int value;value = 0;double value; value = 0.0; }編譯器錯誤:'value' 先前聲明為 'int value'
在每個作用域中,一個名稱只能代表一個實體。因此,在同一個作用域中不能有兩個同名的變量。使用命名空間namespace,我們可以創建兩個具有相同名稱的變量或成員函數。
#include <iostream> using namespace std;// Variable created inside first namespace namespace first {int val = 500; }// Global variable int val = 100;int main() {// Local variableint val = 200;// operator ::cout << val << '\n'; // 200 cout << first::val << '\n'; // 500return 0; }命名空間允許我們將具有全局作用域的命名實體分組為更窄的作用域,賦予它們命名空間作用域。這允許將程序的元素組織到由名稱引用的不同邏輯范圍中。
-
命名空間namespace是 C++ 中添加的一項功能,C 中不存在。
-
命名空間是一個聲明性區域,為其中的標識符(類型、函數、變量等的名稱)提供范圍。
-
允許多個具有相同名稱的命名空間塊。這些塊中的所有聲明都在命名范圍內聲明。
-
命名空間定義以關鍵字命名空間開頭,后跟命名空間名稱,如下所示:
- 命名空間聲明僅出現在全局范圍內。
- 命名空間聲明可以嵌套在另一個命名空間中。
- 命名空間聲明沒有訪問修飾符。
- 命名空間定義的右大括號后不需要分號。
在類中,創建命名空間:
以下是在命名空間中創建類的簡單方法
#include <iostream> using namespace std;namespace ns {class geek{public:void display(){cout << "ns::geek::display()\n";}}; }int main() {ns::geek obj;obj.display();return 0; }訪問命名空間
在 C++ 中,有兩種訪問命名空間變量和函數的方法。
正常方式
#include <iostream> using namespace std;namespace geek {int rel = 300; }int main() {cout << geek::rel << "\n"; // prints 300return 0;“using ”指令
#include <iostream> using namespace std;namespace geek {int rel = 300; }// use of ‘using’ directive using namespace geek;int main() {cout << rel << "\n"; //prints 300return 0; }在頭文件中使用命名空間
我們可以在一個文件中創建命名空間并使用另一個程序訪問內容。這是通過以下方式完成的。
- 我們需要創建兩個文件。一個包含命名空間以及我們稍后要使用的所有數據成員和成員函數。
- 另一個程序可以直接調用第一個程序來使用其中的所有數據成員和成員函數
在這里我們可以看到命名空間是在file1.h中創建的,并且在file2.cpp中調用了該命名空間的value()方法。
嵌套命名空間
在 C++ 中,命名空間也可以嵌套,即一個命名空間嵌套在另一個命名空間中。命名空間變量的解析是分層的。
#include <iostream> using namespace std;// Nested namespace namespace out {int val = 5; namespace in{int val2 = val; } }// Driver code int main() {cout << out::in::val2; // prints 5return 0; }命名空間別名
在 C++ 中,可以為命名空間名稱使用別名,以方便使用?,F有命名空間可以使用新名稱作為別名,具體示例如下:
#include <iostream>namespace name1 {namespace name2 {namespace name3 {int var = 42;}} }// Aliasing namespace alias = name1::name2::name3;int main() {std::cout << alias::var << '\n'; }Code : 使用數組計算數字平均值的 C++ 程序
該程序從用戶獲取 n 個元素(其中 n 由用戶指定),將數據存儲在數組中并計算這些數字的平均值。
#include <iostream> using namespace std;int main () { int n ;float num[100], sum = 0.0 ,ave ;cout << "輸入數據個數: ";cin >> n;for (int i = 0; i < n; i++){cout << i+ 1 ;cin >> num[i];sum += num[i];}ave = sum / n;cout << "平均數= " << ave ; }總結
以上是生活随笔為你收集整理的【小白学习C++ 教程】十三、C++命名空间namespace的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 姐妹们,跟我讲讲毛戈平鱼子酱面膜怎么样吧
- 下一篇: 【小白学习C++ 教程】十四、C++ 中