最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++中命名空間的概念及使用詳解

 更新時間:2023年08月03日 09:42:57   作者:Pin_na  
這篇文章主要介紹了C++中命名空間的概念及使用詳解,使用命名空間的目的是對標識符的名稱進行本地化,以避免命名沖突或名字污染,namespace關(guān)鍵字就是針對這種問題而出現(xiàn)的,需要的朋友可以參考下

什么是命名空間?

字面意思來理解,命名空間主要有兩個點——“名字”和“空間”。

通過這兩個關(guān)鍵詞,我給大家簡單描述一下什么是命名空間(看下面↓)

舉個例子:

有一個學校,世界之大無奇不有,恰恰這個學校就比較奇怪。那你可能就會問了,這個學校究竟奇怪在哪里?這個學校奇怪的就是不僅有很多生日相同的學生,還有不少同學重名重姓。然后有一天放學,學校里有人撿到了一個錢包,里面有張三的學生證,這個錢包就被送到了校長手里,校長看著學生這么懂事,對其大加贊賞,于是便打開廣播同時向各班表揚了這名學生,并且讓名叫張三的學生來校長辦公室一趟。過了幾分鐘,校長打開門一看,門外站了七八個大漢,原來這些分別都是二三四各個班的張三,還有各個年級的張三,校長瞬間蒙圈,也不知道自己叫的是哪個張三了。

故事講完了,上面的各個班級各個年級就是不同的“空間”,張三就是一個“名字”,那個蒙圈的校長自然就是編譯器啦。“校長”蒙圈,程序自然就無法正常的執(zhí)行了。那么為什么校長沒有找到真正的張三呢?原因就在于各個空間中的變量、函數(shù)、類命名發(fā)生了沖突、命名被相互污染了,所以為了解決這種問題,我們就加入了命名空間。之后校長再要找張三,他就會在廣播上喊高二三班的張三來我辦公室一下,就可以精確的找到需要找的內(nèi)容了。

概念

在C/C++中,變量、函數(shù)和后面要學到的類都是大量存在的,這些變量、函數(shù)和類的名稱將都存在于全局作 用域中,可能會導致很多沖突。

使用命名空間的目的是對標識符的名稱進行本地化,以避免命名沖突或名字 污染,namespace關(guān)鍵字就是針對這種問題而出現(xiàn)的。

定義

namespace + 命名空間名稱 + { 命名空間成員 }

特點

1. 普通的命名空間

namespace N1 // N1為命名空間的名稱
{
    // 命名空間中的內(nèi)容,既可以定義變量,也可以定義函數(shù)
    int a;
    int Add(int left, int right)
    {
        return left + right;
    }
}

2.命名空間可以嵌套

namespace N2
{
    int a;
    int b;
    int Add(int left, int right)
    {
        return left + right;
    }
    namespace N3
    {
        int c;
        int d;
        int Sub(int left, int right)
        {
            return left - right;
        }
    }
}

3. 同一個工程中允許存在多個相同名稱的命名空間(編譯器會合成到同一個命名空間)

// 編譯器最后會合成同一個命名空間中
namespace N1
{
    int Mul(int left, int right)
    {
        return left * right;
    }
}

一個命名空間就定義了一個新的作用域,命名空間中的所有內(nèi)容都局限于該命名空間中

命名空間的三種使用方式

1.加命名空間名稱及作用域限定符

int main()
{
    printf("%d\n", N::a);
    return 0;
}

2.使用using將命名空間中成員引入

using N::b;
int main()
{
    printf("%d\n", N::a);
    printf("%d\n", b);
    return 0;
}

3.使用using namespace 命名空間名稱引入

using namespce N;
int main()
{
    printf("%d\n", N::a);
    printf("%d\n", b);
    Add(10, 20);
    return 0;
}

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

相關(guān)文章

  • C++超詳細分析紅黑樹

    C++超詳細分析紅黑樹

    這一篇我要跟大家介紹二叉搜索樹中的另一顆樹——紅黑樹,它主要是通過控制顏色來控制自身的平衡,但它的平衡沒有AVL樹的平衡那么嚴格
    2022-03-03
  • C++11 簡單實現(xiàn)線程池的方法

    C++11 簡單實現(xiàn)線程池的方法

    這篇文章主要介紹了C++11 簡單實現(xiàn)線程池的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • C++實現(xiàn)JPEG格式圖片解析(附代碼)

    C++實現(xiàn)JPEG格式圖片解析(附代碼)

    這篇文章主要為大家詳細介紹了C++如何實現(xiàn)JPEG格式圖片解析功能,文中的示例代碼講解詳細,具有一定的學習價值,需要的可以參考一下
    2023-05-05
  • C++九種排序具體實現(xiàn)代碼

    C++九種排序具體實現(xiàn)代碼

    這篇文章主要介紹了C++九種排序具體實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 利用C語言實現(xiàn)簡單三子棋游戲

    利用C語言實現(xiàn)簡單三子棋游戲

    這篇文章主要為大家詳細介紹了利用C語言實現(xiàn)簡單三子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • C++實現(xiàn)圖的遍歷算法(DFS,BFS)的示例代碼

    C++實現(xiàn)圖的遍歷算法(DFS,BFS)的示例代碼

    本文給大家?guī)淼氖菆D遍歷的算法,DFS(深度優(yōu)先遍歷),BFS(廣度優(yōu)先遍歷)。這兩個算法是比較重要和常用的算法,但是在圖中的實現(xiàn)只是最基本的操作,快跟隨小編一起學習一下吧
    2022-07-07
  • opencv 做人臉識別 opencv 人臉匹配分析

    opencv 做人臉識別 opencv 人臉匹配分析

    opencv 人臉識別通過級聯(lián)分類器對特征的分級篩選來確定是否是人臉,每個節(jié)點的正確識別率很高,但正確拒絕率很低,任一節(jié)點判斷沒有人臉特征則結(jié)束運算,宣布不是人臉
    2012-11-11
  • MFC中Radio Button的用法詳解

    MFC中Radio Button的用法詳解

    這篇文章主要介紹了MFC中Radio Button的用法,需要的朋友可以參考下
    2014-07-07
  • C++獲取數(shù)組大小和多維數(shù)組操作詳解

    C++獲取數(shù)組大小和多維數(shù)組操作詳解

    這篇文章主要介紹了C++獲取數(shù)組大小和多維數(shù)組的操作,文中通過代碼示例介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-04-04
  • C++?Boost?Format超詳細講解

    C++?Boost?Format超詳細講解

    Boost是為C++語言標準庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化進程的開發(fā)引擎之一,是為C++語言標準庫提供擴展的一些C++程序庫的總稱
    2022-11-11

最新評論

益阳市| 平顺县| 新泰市| 韶山市| 裕民县| 阿合奇县| 保定市| 保靖县| 十堰市| 和顺县| 高碑店市| 南澳县| 南漳县| 河源市| 大冶市| 余姚市| 金堂县| 大埔县| 响水县| 阿图什市| 集贤县| 天峻县| 英吉沙县| 霸州市| 瑞丽市| 葵青区| 临邑县| 石门县| 个旧市| 紫金县| 茶陵县| 天台县| 福建省| 苏尼特左旗| 阜城县| 遵化市| 石嘴山市| 客服| 巍山| 三河市| 陵川县|