欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++命名空間使用詳細介紹

 更新時間:2022年09月09日 10:11:17   作者:AKA.瞳源治  
考慮一種情況,當我們有兩個同名的人,Zara,在同一個班里。當我們需要對它們進行區(qū)分我們必須使用一些額外的信息和它們的名字,比如它們生活在不同的區(qū)域或者興趣愛好什么的,在C++程序中也會遇到同樣的情況,所以命名空間就此產生

1.前言

在c++中,為了避免代碼名稱上所產生沖突,引入了命名空間這個東西。

命名空間相當于劃分出一定的空間,為特定的類型,函數和變量等的名稱(也就是標識符)提供了一個范圍。

命名空間之內的標識符訪問彼此沒有限制,命名空間之外的標識符可通過使用每個標識符的完全限定名來訪問成員,也可通過單個標識符的using聲明或命名空間中所有標識符的using指令來訪問成員。

命名空間可以定義在幾個不同的部分中,因此命名空間是由幾個單獨定義的部分組成的。一個命名空間的各個組成部分可以分散在多個文件中。

2.定義

命名空間的定義使用關鍵字namespace,后跟命名空間的名稱。

namespace namespace_name

{

// 代碼聲明

}

調用帶有命名空間的函數或者變量時,需要在前面加上命名空間的名稱(使用完全限定名)。

namespace_name::code; // code 可以是變量或函數

樣例:

#include<iostream>
using namespace std;
namespace A 
{
    void func() 
    {
        cout << "A" << endl;
    }
}
// 第二個命名空間
namespace B {
    void func() 
    {
        cout << "B" << endl;
    }
}
int main()
{
    // 調用第一個命名空間中的函數
    A::func();
    // 調用第二個命名空間中的函數
    B::func();
    return 0;
}

結果:

3.using 指令

當使用using 指令時,便可不用加完全限定名直接訪問。

這個指令會讓編譯器直接使用namespace里的所有名稱。

樣例:

#include<iostream>
using namespace std;
namespace A 
{
    void func() 
    {
        cout << "A" << endl;
    }
}
// 第二個命名空間
namespace B {
    void func() 
    {
        cout << "B" << endl;
    }
}
using namespace B;
int main()
{
    // 只會調用第二個命名空間中的函數
    func();
    return 0;
}

結果:

4.using 聲明

使用 using 聲明,以將一個標識符引入范圍:

#include<iostream>
using namespace std;
namespace A
{
    class a
    {
    public:
        void func()
        {
            cout << "A" << endl;
        }
    };
}
using namespace A;
A::a aa;
int main()
{
    aa.func();
    return 0;
}

結果為:

5.嵌套的命名空間

一個命名空間中可以定義另一個命名空間,一般形式為:

namespace namespace_name1 {
   // 代碼聲明
   namespace namespace_name2 {
      // 代碼聲明
   }
}

像上列代碼,如果要訪問namespace_name2中的成員,我們得使用::運算符來訪問:

// 訪問 namespace_name2 中的成員

using namespace namespace_name1::namespace_name2;

// 訪問 namespace_name1 中的成員

using namespace namespace_name1;

樣例:

#include<iostream>
using namespace std;
namespace A
{
    void func()
    {
        cout << "A" << endl;
    }
    // 第二個命名空間
    namespace B 
    {
        void func()
        {
            cout << "B" << endl;
        }
    }
}
using namespace A::B;
int main()
{
    // 只會調用第二個命名空間中的函數
    func();
    return 0;
}

結果為:

到此這篇關于C++命名空間使用詳細介紹的文章就介紹到這了,更多相關C++命名空間內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C/C++的各種字符串函數你知道幾個

    C/C++的各種字符串函數你知道幾個

    這篇文章主要為大家詳細介紹了C/C++的各種字符串函數,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C語言中數組常用的一些排序算法小結

    C語言中數組常用的一些排序算法小結

    數組的排序方法有很多,效率也各不相同,下面這篇文章主要給大家介紹了關于C語言中數組常用的一些排序算法的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • C語言實現(xiàn)繪制可愛的橘子鐘表

    C語言實現(xiàn)繪制可愛的橘子鐘表

    這篇文章主要為大家詳細介紹了如何利用C語言實現(xiàn)繪制可愛的橘子鐘表,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的可以了解一下
    2022-12-12
  • Opencv實現(xiàn)最小外接矩形和圓

    Opencv實現(xiàn)最小外接矩形和圓

    這篇文章主要為大家詳細介紹了Opencv實現(xiàn)最小外接矩形和圓,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • C語言測試n的階乘和x的n次方

    C語言測試n的階乘和x的n次方

    今天小編就為大家分享一篇關于C語言測試n的階乘和x的n次方,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • C++中多線程的執(zhí)行順序如你預期嗎

    C++中多線程的執(zhí)行順序如你預期嗎

    這篇文章主要為大家詳細介紹一下C++中多線程的執(zhí)行順序的相關資料,文中的示例代碼講解詳細,對我們學習C++多線程有一定幫助,需要的可以參考一下
    2022-10-10
  • String底層函數的實現(xiàn)方式詳解

    String底層函數的實現(xiàn)方式詳解

    這篇文章主要介紹了String底層函數的實現(xiàn)方式,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 使用QPainter畫一個3D正方體

    使用QPainter畫一個3D正方體

    這篇文章主要為大家詳細介紹了使用QPainter畫一個3D正方體,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • C++生成dll和調用dll的方法實例

    C++生成dll和調用dll的方法實例

    C++生成dll和調用dll的方法實例,需要的朋友可以參考一下
    2013-03-03
  • C指針原理教程之C指針基礎

    C指針原理教程之C指針基礎

    指針是一個特殊的變量,它里面存儲的數值被解釋成為內存里的一個地址。要搞清一個指針需要搞清指針的四方面的內容:指針的類型、指針所指向的類型、指針的值或者叫指針所指向的內存區(qū)、指針本身所占據的內存區(qū)。
    2019-02-02

最新評論