中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

C++入門:命名空間-創(chuàng)新互聯(lián)

目錄

創(chuàng)新互聯(lián)公司是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,專業(yè)領(lǐng)域包括成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、電商網(wǎng)站制作開發(fā)、微信小程序開發(fā)、微信營銷、系統(tǒng)平臺開發(fā),與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!

一.前言?

C++關(guān)鍵字(C++98)總覽:

一.作用域

二.命名沖突

三.命名空間

命名空間定義:

命名空間的嵌套定義:

四.命名空間的使用

五.命名空間的本質(zhì)


一.前言?

C++是從C語言延伸出來的編程語言,C++兼容了C語言百分之九十九的語法和特性,同時(shí)對于C語言(尤其是面對規(guī)模較大的工程時(shí))中許多設(shè)計(jì)不合理的地方進(jìn)行了優(yōu)化并容納進(jìn)去了面向?qū)ο缶幊趟枷?,增加了許多有用的庫,以及編程范式等。

C++關(guān)鍵字(C++98)總覽:

C++總計(jì)63個(gè)關(guān)鍵字,C語言32個(gè)關(guān)鍵字

紅色方框圈出了C++新引入的關(guān)鍵字?

一.作用域

項(xiàng)目工程中的作用域分為全局作用域和局部作用域(C++中有命名空間的作用域)

全局作用域中聲明的標(biāo)識符在所有作用域中都有效,而且具有跨編譯單元(一個(gè).cpp文件就是一個(gè)編譯單元)的鏈接屬性(即在整個(gè)項(xiàng)目工程中可見)。(不考慮static修飾的情況)?

二.命名沖突

當(dāng)局部作用域和全局作用中有標(biāo)識名重復(fù)定義時(shí),遵循局部優(yōu)先原則,這種情況可以理解為命名污染,此時(shí)程序不會報(bào)錯(cuò)。

當(dāng)全局作用域中聲明的標(biāo)識符之間重復(fù)定義時(shí),就會發(fā)生命名沖突,程序就會報(bào)錯(cuò)

面對巨大的項(xiàng)目工程,C語言沒辦法解決類似這樣的命名沖突問題;

三.命名空間

一個(gè)項(xiàng)目中,眾多變量,函數(shù),類以及結(jié)構(gòu)類型的標(biāo)識名如果重復(fù)出現(xiàn)就會發(fā)生沖突,而C語言對此并沒有很好的解決方法(尤其是當(dāng)工程項(xiàng)目特別大的時(shí)候),于是C++便引入了命名空間的語法,很好地避免了大工程中命名沖突或命名污染的問題。

命名空間定義:

定義命名空間,需要使用到namespace關(guān)鍵字,后面跟命名空間的名字,然后接一對{}即可,{}中即為命名空間的成員。

命名空間中可以定義變量/函數(shù)/類型;

namespace bit
{
    // 命名空間中可以定義變量/函數(shù)/類型
    int rand = 10;
    int Add(int left, int right)
    {
        return left + right;
    }
    一個(gè)命名空間就定義了一個(gè)新的作用域,命名空間中的所有內(nèi)容都局限于該命名空間中
}

命名空間不能定義在任何的函數(shù)(方法),類等的局部作用域中;

命名空間可以嵌套定義;

命名空間的嵌套定義:
namespace N1
{
    int a;
    int b;
    int Add(int left, int right)
    {
        return left + right;
    }
    namespace N2
    {
        int c;
        int d;
        int Sub(int left, int right)
        {
            return left - right;
        }
    }
}

命名空間嵌套定義時(shí),內(nèi)層命名空間和外層命名空間即使存在相同的標(biāo)識符,也不會發(fā)生命名沖突。

同一個(gè)工程中允許存在多個(gè)相同名稱的命名空間,編譯器會將同名的命名空間合成同一個(gè)命名空間。命名空間本身的標(biāo)識名不存在命名沖突的問題。

四.命名空間的使用

作用域限定符? ? ::

取消命名空間限制的關(guān)鍵字:using

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

命名空間的使用有三種方式:

(1)在被訪問的標(biāo)識名前加命名空間名稱及作用域限定符::

被嵌套命名空間中內(nèi)容的訪問

(2)使用using將命名空間中某個(gè)成員引入

(3)?使用using namespace+命名空間名稱:解除相應(yīng)命名空間對其中所有內(nèi)容的作用域限制

第三種用法相當(dāng)于是取消相應(yīng)的命名空間,對待這種使用方式應(yīng)持謹(jǐn)慎態(tài)度(尤其是在大項(xiàng)目中),推薦使用的訪問命名空間內(nèi)容的方法是第(1),第(2)種。

五.命名空間的本質(zhì)

命名空間的本質(zhì)作用是將全局作用域劃分為多個(gè)獨(dú)立的子作用域(命名空間限制了其中所有標(biāo)識名的作用范圍,但沒有改變其中變量的生命周期),各個(gè)子作用域的內(nèi)容無法被直接訪問(編譯和鏈接階段都不能被直接訪問),只有通過作用域限定符:: ,和using關(guān)鍵字才能訪問到相應(yīng)命名空間中的內(nèi)容.

通過這樣語法規(guī)則,C++很好地避免了編程中可能出現(xiàn)的命名污染和命名沖突問題。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

分享題目:C++入門:命名空間-創(chuàng)新互聯(lián)
本文地址:http://www.rwnh.cn/article24/djihje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、營銷型網(wǎng)站建設(shè)、定制網(wǎng)站網(wǎng)站內(nèi)鏈、商城網(wǎng)站、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
墨竹工卡县| 周宁县| 兴安县| 德清县| 石屏县| 吴江市| 嘉义县| 日喀则市| 娄烦县| 澄江县| 恭城| 富川| 廊坊市| 梁平县| 鄂托克旗| 乃东县| 昂仁县| 墨江| 怀安县| 塔城市| 宁海县| 米林县| 沅江市| 胶州市| 随州市| 和田市| 九龙城区| 东乡| 玉山县| 建阳市| 阳泉市| 安阳县| 安塞县| 兴业县| 清镇市| 林州市| 定州市| 交城县| 瑞昌市| 余庆县| 岳池县|