<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦 > 知識大全 > 知識百科 > 百科知識 > 什么是命名空間_具體的范圍怎樣

        什么是命名空間_具體的范圍怎樣

        時間: 謝君787 分享

        什么是命名空間_具體的范圍怎樣

          命名空間是用來組織和重用代碼的,那么你對命名空間了解多少呢?以下是由學習啦小編整理關于什么是命名空間的內容,希望大家喜歡!

          命名空間的解析

          NameSpace(名字空間),之所以出來這樣一個東西,是因為人類可用的單詞數太少,并且不同的人寫的程序不可能所有的變量都沒有重名現象,對于庫來說,這個問題尤其嚴重,如果兩個人寫的庫文件中出現同名的變量或函數(不可避免),使用起來就有問題了。為了解決這個問題,引入了名字空間這個概念,通過使用 namespace xxx;你所使用的庫函數或變量就是在該名字空間中定義的,這樣一來就不會引起不必要的沖突了。

          通常來說,命名空間是唯一識別的一套名字,這樣當對象來自不同的地方但是名字相同的時候就不會含糊不清了。使用擴展標記語言的時候,XML的命名空間是所有元素類別和屬性的集合。元素類別和屬性的名字是可以通過唯一XML命名空間來唯一。

          在XML里,任何元素類別或者屬性因此分為兩部分名字,一個是命名空間里的名字另一個是它的本地名。在XML里,命名空間通常是一個統一資源識別符(URI)的名字。而URI只當名字用。主要目的是為了避免名字的沖突。

          命名空間的范圍

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

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

          二: 由于namespace的概念,使用C++標準程序庫的任何標識符時,可以有三種選擇:

          1、直接指定標識符。例如std::ostream而不是ostream。完整語句如下: std::cout << std::hex << 3.4 << std::endl;

          2、使用using關鍵字。 using std::cout; using std::endl; using std::cin; 以上程序可以寫成 cout << std::hex << 3.4 << endl;

          3、最方便的就是使用using namespace std; 例如: using namespace std;這樣命名空間std內定義的所有標識符都有效(曝光)。就好像它們被聲明為全局變量一樣。那么以上語句可以如下寫: cout <<hex << 3.4 << endl;因為標準庫非常的龐大,所以程序員在選擇的類的名稱或函數名時就很有可能和標準庫中的某個名字相同。所以為了避免這種情況所造成的名字沖突,就把標準庫中的一切都被放在名字空間std中。但這又會帶來了一個新問題。無數原有的C++代碼都依賴于使用了多年的偽標準庫中的功能,他們都是在全局空間下的。所以就有了<iostream.h>和<iostream>等等這樣的頭文件,一個是為了兼容以前的C++代碼,一個是為了支持新的標準。命名空間std封裝的是標準程序庫的名稱,標準程序庫為了和以前的頭文件區別,一般不加".h"

          命名空間的分類

          在struts2中

          在struts2里,namespace是package里的一個屬性,用來標記action的訪問路徑。注意:只有package的namespace才能標記路徑而不是name屬性。在struts2里,存在著一個是默認namespace-"",若package不指定namespace,則package里的action就使用默認namespace。若訪問action時沒有指定namespace則struts2會先在根namespace-"/"里查找action,找不到再到默認namespace里查找action。再找不到就會報錯,也就是說struts2只會查找兩層namespace。

          在XML中

          命名空間提供避免元素命名沖突的方法。

          命名沖突

          在 XML(標準通用標記語言下的一個子集) 中,元素名稱是由開發者定義的,當兩個不同的文檔使用相同的元素名時,就會發生命名沖突。

          這個 XML 文檔攜帶著某個表格中的信息:

          <table>

          <tr>

          <td>Apples</td>

          <td>Bananas</td>

          </tr>

          </table>

          這個 XML 文檔攜帶有關桌子的信息(一件家具):

          <table>

          <name>African Coffee Table</name>

          <width>80</width>

          <length>120</length>

          </table>

          假如這兩個 XML 文檔被一起使用,由于兩個文檔都包含帶有不同內容和定義的 <table> 元素,就會發生命名沖突。

          XML 解析器無法確定如何處理這類沖突。

          使用前綴來避免命名沖突

          此文檔帶有某個表格中的信息:

          <h:table>

          <h:tr>

          <h:td>Apples</h:td>

          <h:td>Bananas</h:td>

          </h:tr>

          </h:table>

        1681598 主站蜘蛛池模板: 潮喷大喷水系列无码视频| 国产av不卡一区二区| 丰满少妇内射一区| 性色a∨精品高清在线观看| 国产日韩另类综合11页| 亚洲国产一区二区精品专| 香港三日本三级少妇三级视频| 狠狠躁夜夜躁人人爽天天5| 亚洲综合精品第一页| 最近最好的2019中文| 中文字幕va一区二区三区| 欧美黑人巨大xxxxx| 无码精品人妻一区二区三区中| 国产区免费精品视频| 国产成人亚洲日韩欧美电影| 2021国产成人精品国产| 老熟妇欲乱一区二区三区| 无套后入极品美女少妇| 国产精品99久久免费| 久久久久久亚洲综合影院| 丰满人妻一区二区乱码中文电影网| 国产男女黄视频在线观看| 亚洲综合激情六月婷婷在线观看 | 成人精品一区日本无码网| 国产精品无遮挡猛进猛出| 午夜福利看片在线观看| 国产成人1024精品免费| 亚洲国产欧美日韩另类| 夜夜嗨久久人成在日日夜夜| 亚洲高清日韩专区精品| 无码伊人66久久大杳蕉网站谷歌| 精品亚洲国产成人蜜臀av| 韩国午夜理伦三级| 777奇米四色成人影视色区| 精品中文字幕一区在线| 97人妻碰碰视频免费上线| 久久青草国产精品一区| 成人午夜伦理在线观看| 欧美高清精品一区二区| 伊人无码一区二区三区| 最新中文字幕av无码专区不|