91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C/C++中命名空間namespace有什么用

發布時間:2021-09-05 19:57:31 來源:億速云 閱讀:304 作者:小新 欄目:開發技術

這篇文章主要介紹C/C++中命名空間namespace有什么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

概述

命名空間 (namespace) 可以幫助我們區分不同庫中相同名稱的函數, 類, 變量等. 使用了命名空間即定義了上下文. 命名空間就是定義了一個范圍.

C/C++中命名空間namespace有什么用

命名空間

為了解決 C++ 標準庫中的標識符與程序中的全局標識符之間以及不同庫中的所有標識符之間的命名沖突. 標準 C++ 庫的所有標識符都定義在一個名為 std 的命名空間中. 在程序中用到 C++ 標準庫時, 使用 std 作為限定.

我們在寫 “Hello World” 的時候就曾用到過命名空間 (namespace):

C/C++中命名空間namespace有什么用

命名空間的作用

命名空間是 ANSI C++ 引入可以由用戶命名的作用域, 用來處理程序中常見的同名沖突. 在 C++ 程序中, 有大量的變量, 函數和類名. 如果他們都存在于同一個全局命名空間中, 會導致很多沖突.

  • 自定義函數與標準庫函數重名

  • 程序中使用的名字與第三方庫中名稱相同

  • 同一項目不同模塊中名字的沖突

命名空間的機制, 對于聲明于其中的名稱都進行了本地化:

  • 相同的名稱可以在不同的上下文中使用, 而不會引起名稱的沖突

  • C++ 中的標準庫被定義到 std 命名空間中, 減少了與用戶自定義名稱的沖突

  • 在自己的程序中創建自己的命名空間, 避免本地化名稱與外界沖突

C/C++中命名空間namespace有什么用

自定義命名空間

我們可以自己定義命名空間. 我們把一些全局分別放在各個名字空間, 從而與其他全局實體分隔開來.

格式:

namespace 命名空間名 { 
    聲明;
}
  • 變量 (可以帶有初始化) 及常量

  • 函數 (可以是定義或聲明)

  • 結構體

  • 模板

  • 命名空間 (在一個命名空間中又定義一個命名空間, 即嵌套的命名空間)

命名空間的作用是建立一些互相分隔的作用域. 把一些全局實體分隔開來, 以免產生名字沖突.

命名空間成員的方法

一般方法: 引用命名空間成員時, 用命名空間名對名命名空間成員進行限定, 以區別同名標識符. (命名空間::命名空間成員名)

簡化使用命名空間成員的機制:

  • 使用命名空間別名: namespace TV = Television; // TV等同Television

  • 使用格式: using 命名空間成員名 using ns1::Student; // Student等同ns1::Student

  • 使用: using namespace 命名空間名

案例

h2.h:

#ifndef PROJECT8_H1_H
#define PROJECT8_H1_H

namespace kitchen {
    class Table {
    private:
        int legs;
        int price;
    public:
        Table(int l, int p){
            legs = l;
            price = p;
        }
    };
}

#endif //PROJECT8_H1_H

h3.h:

#ifndef PROJECT8_H2_H
#define PROJECT8_H2_H

namespace office {
    class Table {
    private:
        int rows;
        int cols;
    public:
        Table(int r, int c){
            rows = r;
            cols = c;
        }
    };
}

#endif //PROJECT8_H2_H

mian.cpp:

#include <iostream>
#include "h2.h"
#include "h3.h"
using namespace std;

int main() {
    kitchen::Table t1(6, 300);
    office::Table t2(6, 2);

    return 0;
}

以上是“C/C++中命名空間namespace有什么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

花莲县| 台北县| 尼玛县| 东乡县| 进贤县| 潢川县| 衡阳县| 六安市| 卢龙县| 昆明市| 临江市| 聂拉木县| 阜宁县| 特克斯县| 福建省| 金沙县| 五指山市| 应城市| 石嘴山市| 明光市| 宁津县| 德格县| 兰州市| 周口市| 固始县| 日照市| 吉首市| 兴仁县| 连南| 广东省| 铁岭县| 神池县| 龙井市| 五河县| 新营市| 榆中县| 怀化市| 靖宇县| 锦屏县| 万荣县| 习水县|