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

你真的懂C++中的namespace用法

 更新時(shí)間:2021年06月16日 14:24:45   作者:賺錢養(yǎng)個小智障- ̗̀(๑ᵔ⌔ᵔ๑)  
命名空間(namespace)為防止名字沖突提供了更加可控的機(jī)制,命名空間分割了全局命名空間,其中每個命名空間是一個作用域,今天通過本文給大家分享C++中namespace用法,感興趣的朋友一起看看吧

namespace中文意思是命名空間或者叫名字空間,傳統(tǒng)的C++只有一個全局的namespace,但是由于現(xiàn)在的程序的規(guī)模越來越大,程序的分工越來越細(xì),全局作用域變得越來越擁擠,每個人都可能使用相同的名字來實(shí)現(xiàn)不同的庫,于是程序員在合并程序的時(shí)候就會可能出現(xiàn)名字的沖突。namespace引入了復(fù)雜性,解決了這個問題。namespace允許像類,對象,函數(shù)聚集在一個名字下。本質(zhì)上講namespace是對全局作用域的細(xì)分。

說白了namespace是怕變量沖突而出現(xiàn)的一種界限,不同的namespace好比不同的國家,而其中的變量相當(dāng)于政府機(jī)關(guān),而他們都是相互獨(dú)立的!

using namespace std

using namespace std簡要意思就是使用標(biāo)準(zhǔn)庫,想知道更清楚的請繼續(xù)往下看

using namespace std 的意思是:

using 和namespace都是C++的關(guān)鍵詞。
std 是標(biāo)準(zhǔn)程序庫所駐之命名空間(namespace)的名稱。

  • 如果使用Boost的庫 ,那就寫 using namespace boost
  • 如果使用C++標(biāo)準(zhǔn)庫 那就寫 using namespace std

就是暴露std這個名字空間,你就可以調(diào)用std這個名字空間下的東西,包含在這個命名空間的所有類還有函數(shù)都可以使用了

一般的名字空間用法可以 這樣使用:

namespace sdm  
  {  
            int   temp;  
            ......  
  }   

那么你在一個文件中有三種用法:

using namespace sdm;
然后你就可以使用變量temp:
temp=9;
還可以使用sdm中的其他每一個成員。using sdm::temp;
在這個文件中只能使用sdm中的temp這個變量。

你在使用時(shí)直接使用sdm::temp:
cout<<sdm::temp<<endl;
使用其它的成員也這樣調(diào)用。

using namespace 就是怎么把一堆代碼歸在一起,把它們納入一個space(空間);然后使用它們的時(shí)候,先要聲明使用它所在的這個空間

例如A B兩個班都有叫張三的人,你要使用A班的張三,必然要先指名是A班這個名字空間(namespace),然后你對張三的所有命令才能達(dá)到你的預(yù)想,才不會叫錯人

namespace 就是一個名字的空間。是為了避免名字沖突而使用的。在不同的空間里可以使用同一個名字而不會引起名字沖突。

<iostream>和<iostream.h>

  • <iostream>和<iostream.h>是不一樣,前者沒有后綴,實(shí)際上,在你的編譯器include文件夾里面可以看到,二者是兩個文件,打開文件就會發(fā)現(xiàn),里面的代碼是不一樣的。
  • 后綴為.h的頭文件c++標(biāo)準(zhǔn)已經(jīng)明確提出不支持了,早些的實(shí)現(xiàn)將標(biāo)準(zhǔn)庫功能定義在全局空間里,聲明在帶.h后綴的頭文件里,c++標(biāo)準(zhǔn)為了和C區(qū)別開,也為了正確使用命名空間,規(guī)定頭文件不使用后綴.h。
  • 因此,在使用<iostream.h>時(shí),相當(dāng)于在c中調(diào)用庫函數(shù),使用的是全局命名空間,也就是早期的c++實(shí)現(xiàn);當(dāng)使 用的時(shí)候,該頭文件沒有定義全局命名空間,必須使用namespace std;這樣才能正確使用cout。

namespace

所謂namespace,是指標(biāo)識符的各種可見范圍。C++標(biāo)準(zhǔn)程序庫中的所有標(biāo)識符都被定義于一個名為std的namespace中。

由于namespace的概念,使用C++標(biāo)準(zhǔn)程序庫的任何標(biāo)識符時(shí),可以有三種選擇:

直接指定標(biāo)識符。例如std::ostream而不是ostream。完整語句如下:

std::cout << std::hex << 3.4 << std::endl;

使用using關(guān)鍵字。

using std::cout;
using std::endl;

以上程序可以寫成

cout << std::hex << 3.4 << endl;

最方便的就是使用using namespace std

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

這樣命名空間std內(nèi)定義的所有標(biāo)識符都有效(曝光)。就好像它們被聲明為全局變量一樣。那么以上語句可以如下寫:

cout << hex << 3.4 << endl;

因?yàn)闃?biāo)準(zhǔn)庫非常的龐大,所程序員在選擇的類的名稱或函數(shù)名時(shí)就很有可能和標(biāo)準(zhǔn)庫中的某個名字相同。所以為了避免這種情況所造成的名字沖突,就把標(biāo)準(zhǔn) 庫中的一切都被放在名字空間std中。但這又會帶來了一個新問題。無數(shù)原有的C++代碼都依賴于使用了多年的偽標(biāo)準(zhǔn)庫中的功能,他們都是在全局空間下 的。

所以就有了<iostream.h>和<iostream>等等這樣的頭文件,一個是為了兼容以前的C++代碼,一個是為了支持新的標(biāo)準(zhǔn)。

命名空間std封裝的是標(biāo)準(zhǔn)程序庫的名稱,標(biāo)準(zhǔn)程序庫為了和以前的頭文件區(qū)別,一般不加".h"

以上就是你真的懂C++中的namespace用法的詳細(xì)內(nèi)容,更多關(guān)于C++中namespace用法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C/C++ Qt 自定義Dialog對話框組件應(yīng)用案例詳解

    C/C++ Qt 自定義Dialog對話框組件應(yīng)用案例詳解

    有時(shí)候我們需要一次性修改多個數(shù)據(jù),使用默認(rèn)的模態(tài)對話框似乎不太夠用,此時(shí)我們需要自己創(chuàng)建一個自定義對話框。這篇文章主要介紹了Qt自定義Dialog對話框組件的應(yīng)用,感興趣的同學(xué)可以學(xué)習(xí)一下
    2021-11-11
  • 基于C++實(shí)現(xiàn)職工管理系統(tǒng)

    基于C++實(shí)現(xiàn)職工管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了基于C++實(shí)現(xiàn)職工管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C語言實(shí)現(xiàn)求最大公約數(shù)的三種方法

    C語言實(shí)現(xiàn)求最大公約數(shù)的三種方法

    最大公因數(shù),也稱最大公約數(shù)、最大公因子,指兩個或多個整數(shù)共有約數(shù)中最大的一個。本文將為大家介紹三種方法來實(shí)現(xiàn)求解兩個正整數(shù)的最大公約數(shù),需要的可以參考一下
    2021-12-12
  • C++封裝IATHOOK類實(shí)例

    C++封裝IATHOOK類實(shí)例

    這篇文章主要介紹了C++封裝IATHOOK類的實(shí)現(xiàn)方法,對IAT的HOOK實(shí)例進(jìn)行了封裝,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C++初階教程之缺省參數(shù)與函數(shù)重載

    C++初階教程之缺省參數(shù)與函數(shù)重載

    缺省參數(shù)是聲明或定義函數(shù)時(shí)為函數(shù)的參數(shù)指定一個缺省值,在調(diào)用該函數(shù)時(shí)如果沒有指定實(shí)參則采用該形參的缺省值,否則使用指定的實(shí)參,這篇文章主要給大家介紹了關(guān)于C++初階之缺省參數(shù)與函數(shù)重載的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • VC++實(shí)現(xiàn)添加文件關(guān)聯(lián)的方法示例

    VC++實(shí)現(xiàn)添加文件關(guān)聯(lián)的方法示例

    這篇文章主要介紹了VC++實(shí)現(xiàn)添加文件關(guān)聯(lián)的方法,涉及VC++針對注冊表的寫入與VC事件響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • C語言中.與->的用法介紹

    C語言中.與->的用法介紹

    結(jié)構(gòu)體用點(diǎn),結(jié)構(gòu)體指針用箭頭,簡單的說,就是一個快捷方式,一個語法糖,這篇文章主要介紹了C語言中.與->的區(qū)別及用法,需要的朋友可以參考下
    2023-05-05
  • C++中sort函數(shù)的基礎(chǔ)入門使用教程

    C++中sort函數(shù)的基礎(chǔ)入門使用教程

    這篇文章主要給大家介紹了關(guān)于C++中sort函數(shù)的基礎(chǔ)入門使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧
    2018-12-12
  • C++三色球問題描述與算法分析

    C++三色球問題描述與算法分析

    這篇文章主要介紹了C++三色球問題描述與算法分析,結(jié)合注釋形式詳細(xì)講述了三色球問題的描述與相應(yīng)的算法設(shè)計(jì)思路,并給出了相關(guān)的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2016-05-05
  • C++利用jsoncpp庫實(shí)現(xiàn)寫入和讀取json文件

    C++利用jsoncpp庫實(shí)現(xiàn)寫入和讀取json文件

    JsonCpp 是一個C++庫,允許操作 JSON 值,包括序列化和反序列化到字符串和從字符串反序列化。本文主要介紹了如何利用jsoncpp庫實(shí)現(xiàn)寫入和讀取json文件,感興趣的可以了解一下
    2023-04-04

最新評論

松江区| 丹巴县| 图木舒克市| 安阳市| 交口县| 台山市| 洛南县| 沈丘县| 图木舒克市| 什邡市| 石泉县| 区。| 板桥市| 龙州县| 科技| 灵宝市| 娱乐| 新乡县| 思茅市| 东阿县| 碌曲县| 眉山市| 江陵县| 平潭县| 盘锦市| 克什克腾旗| 定陶县| 通化市| 绿春县| 湟源县| 广西| 阿克| 祁门县| 丰台区| 自治县| 潼关县| 彭阳县| 大关县| 临高县| 阿荣旗| 雷山县|