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

C++中的命名空間詳細介紹

 更新時間:2022年02月13日 09:26:34   作者:EJoft  
大家好,本篇文章主要講的是C++中的命名空間詳細介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下

命名空間的特性

首先熟悉一下命名空間的兩個概念。

聲明區(qū)域:可以在其中進行聲明的區(qū)域,如全局文件的聲明區(qū)域是文件,函數(shù)內(nèi)聲明的變量聲明區(qū)域為代碼塊。潛在作用域:潛在作用域從聲明點開始,到其聲明區(qū)域的結(jié)尾。因此潛在作用域比聲明區(qū)域小,因為變了必須定義后才能使用。
這兩個概念通過下圖很好理解,也是編程的常識。

在這里插入圖片描述

在這里插入圖片描述

聲明命名空間和命名空間成員

可以使用如下語法聲明命名空間和空間成員

namespace Jack {
	double a;
	struct b {};
	void f();
}

全局命名空間

如果未在顯式命名空間中聲明某個標識符,則該標識符屬于隱式全局命名空間的一部分。 一般情況下,嘗試避免在全局范圍內(nèi)進行聲明(入口點 Main 函數(shù)除外,它必須位于全局命名空間中)。
全局命名空間可以是用 ::var 來調(diào)用。

不連續(xù)命名空間

即同一個命名空間可以在多個文件中定義,如
file1.cpp

namesapce A {
	int a;
}

file2.cpp

namesapce A {
	int b;
}

在編譯時會將分散在各個文件中的同一個命名空間集合在一起。

嵌套命名空間

命名空間也是可以嵌套的

namespace A {
	namespace B {}
}

using聲明和using編譯指令

using聲明將特定的名稱添加到它所屬的聲明區(qū)域中,例如using A::a;,相當于 Java 中的靜態(tài)導(dǎo)入,而using 編譯指令使名稱空間的所有名稱都可以用,而不需要使用作用于解析符,如 using namespace std;,作用相當于 Java 中的。import java.util.*。這里記錄一下注意點。

using A::pal;
using B::pal; // error declaration conflict
pal = 4;

上述代碼會引起沖突。
一般而言使用using聲明會更安全點。

命名空間別名

命名空間名稱必須是唯一的,這意味著通常它們不應(yīng)太短。 如果名稱的長度使代碼難以讀取,或在不能使用 using 指令的標頭文件中鍵入枯燥,則可以創(chuàng)建一個命名空間別名作為實際名稱的縮寫。 例如:

namespace a_very_long_namespace_name { class Foo {}; }
namespace AVLNN = a_very_long_namespace_name;
void Bar(AVLNN::Foo foo){ }

綜合代碼示例

#include <iostream>

using namespace std;
namespace A {
    int a = 100;
    namespace B            //嵌套一個命名空間B
    {
        int a = 20;
    }
}

int a = 200;//定義一個全局變量

int main(int argc, char *argv[]) {
    cout << "A::a =" << A::a << endl;
    cout << "A::B::a =" << A::B::a << endl;
    cout << "a =" << a << endl;
    cout << "::a =" << ::a << endl;

    int a = 30;
    cout << "a =" << a << endl;
    cout << "::a =" << ::a << endl;

    return 0;
}

output:

A::a =100
A::B::a =20
a =200
::a =200
a =30
::a =200

總結(jié)

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

相關(guān)文章

  • C++inline函數(shù)的特性你了解嗎

    C++inline函數(shù)的特性你了解嗎

    這篇文章主要為大家詳細介紹了C++的inline函數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C語言 數(shù)組指針詳解及示例代碼

    C語言 數(shù)組指針詳解及示例代碼

    本文主要介紹C語言 數(shù)組指針,這里整理了相關(guān)資料并附示例待會及實現(xiàn)結(jié)果,幫助大家學習C語言中指針的知識,有需要學習此部分內(nèi)容的朋友可以參考下
    2016-08-08
  • 初識C++?Vector模板與實例化原理

    初識C++?Vector模板與實例化原理

    這篇文章主要為大家介紹了初識C++?Vector模板與實例化原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • 詳解C++動態(tài)內(nèi)存管理

    詳解C++動態(tài)內(nèi)存管理

    這篇文章主要為大家詳細介紹了C++中動態(tài)內(nèi)存管理相關(guān)資料,文中示例代碼講解詳細,對我們學習C++具有一定幫助,感興趣的小伙伴快跟隨小編一起學習
    2023-05-05
  • C/C++中二進制文件&順序讀寫詳解及其作用介紹

    C/C++中二進制文件&順序讀寫詳解及其作用介紹

    這篇文章主要介紹了C/C++中二進制文件&順序讀寫詳解及其作用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • C語言實現(xiàn)圖的最短路徑Floyd算法

    C語言實現(xiàn)圖的最短路徑Floyd算法

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)圖的最短路徑Floyd算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++單例模式的幾種實現(xiàn)方法詳解

    C++單例模式的幾種實現(xiàn)方法詳解

    這篇文章主要為大家詳細介紹了C++單例模式的幾種實現(xiàn)方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C語言strlen函數(shù)實現(xiàn)讀取字符串長度詳解

    C語言strlen函數(shù)實現(xiàn)讀取字符串長度詳解

    這篇文章主要介紹了用C語言的strlen函數(shù)來實現(xiàn)讀取字符串長度的過程,strlen所作的是一個計數(shù)器的工作,它從內(nèi)存的某個位置開始掃描,直到碰到第一個字符串結(jié)束符'\0'為止
    2022-04-04
  • C++ 中構(gòu)造函數(shù)的實例詳解

    C++ 中構(gòu)造函數(shù)的實例詳解

    這篇文章主要介紹了C++ 中構(gòu)造函數(shù)的實例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • 通過GDB學習C語言的講解

    通過GDB學習C語言的講解

    今天小編就為大家分享一篇關(guān)于通過GDB學習C語言的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評論

崇文区| 南汇区| 寿宁县| 仙游县| 全椒县| 济阳县| 海安县| 郯城县| 白朗县| 天祝| 兴化市| 育儿| 囊谦县| 兴国县| 碌曲县| 青浦区| 桦甸市| 古丈县| 阿尔山市| 虎林市| 绿春县| 山阴县| 常德市| 阆中市| 都匀市| 阿勒泰市| 宁海县| 天长市| 湟源县| 衢州市| 延川县| 嘉峪关市| 渑池县| 龙岩市| 连云港市| 海盐县| 汶上县| 开原市| 镇远县| 寿宁县| 罗田县|