国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

名稱空間

2019-11-11 06:01:38
字體:
來源:轉載
供稿:網友

隨著項目增大,程序中名稱相互沖突的可能性將增加。使用多個廠商的類庫時,可能導致名稱沖突。故提供名稱空間工具來更好地控制名稱的作用域。

用namespace聲明名稱空間:

namespace Jack {

int a;

double b;

void show();

}

namespace John {

int a;

double b;

void show();

}

名稱空間可以是全局的,也可以是在另一名稱空間中,但不能在代碼塊中。默認情況下,名稱空間中的聲明的名稱時外部鏈接性的(所有文件通用),除非引用了const。

通過作用域解析運算符::來使用名稱空間來限定名稱:

Jack::a = 2;

John::show();

我們不希望每次使用名稱時都進行限定,故提供兩種機制:using聲明和using編譯指令。

using聲明:

using Jack::a;

如果將using聲明放在局部聲明區域,則將覆蓋同名的全局變量。

using聲明使一個名稱可用,而using編譯指令使得所有名稱可用:

using namespace Jack;

在全局聲明區域中使用using編譯指令,則全局可用;在函數中使用using編譯指令,則在該函數中可用。

一般來說,using聲明比編譯指令更安全。using編譯指令導入所有名稱,包括可能不需要的名稱。如果此時與局部名稱沖突,則局部名稱將覆蓋名稱空間版本而不發出警告。而用using聲明,發生這種情況編譯器會指示。

總之,導入名稱時首選::或using聲明的方法;對于using聲明,首選將其設置為局部而不是全局。

老式頭文件iostream.h沒有使用名稱空間,新式iostream使用了std名稱空間。

名稱空間可以嵌套。

創建未命名的名稱空間,相當于鏈接性為內部的靜態變量的替代品。由于沒有名字,在其它文件中無法用using。


上一篇:Hdu 1237

下一篇:產生區間隨機數

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宝兴县| 晴隆县| 吴桥县| 容城县| 三门县| 南和县| 云龙县| 平顶山市| 五寨县| 大连市| 新建县| 石门县| 华蓥市| 茶陵县| 新蔡县| 青冈县| 呼玛县| 漯河市| 安远县| 蓝田县| 珲春市| 土默特左旗| 东丰县| 江北区| 鸡泽县| 泗水县| 久治县| 巴楚县| 嘉黎县| 恭城| 岳西县| 滨州市| 永城市| 海盐县| 蕲春县| 西充县| 通化市| 文水县| 顺平县| 聂拉木县| 于田县|