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

C/C++中命名空間(namespace)詳解及其作用介紹

 更新時間:2021年09月02日 15:40:45   作者:我是小白呀  
今天小編就為大家分享一篇關于C++命名空間namespace的介紹與使用,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

概述

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

在這里插入圖片描述

命名空間

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

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

在這里插入圖片描述

命名空間的作用

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

  • 自定義函數(shù)與標準庫函數(shù)重名
  • 程序中使用的名字與第三方庫中名稱相同
  • 同一項目不同模塊中名字的沖突

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

  • 相同的名稱可以在不同的上下文中使用, 而不會引起名稱的沖突
  • C++ 中的標準庫被定義到 std 命名空間中, 減少了與用戶自定義名稱的沖突
  • 在自己的程序中創(chuàng)建自己的命名空間, 避免本地化名稱與外界沖突

在這里插入圖片描述

自定義命名空間

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

格式:

namespace 命名空間名 { 
    聲明;
}
  • 變量 (可以帶有初始化) 及常量
  • 函數(shù) (可以是定義或聲明)
  • 結構體
  • 模板
  • 命名空間 (在一個命名空間中又定義一個命名空間, 即嵌套的命名空間)

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

命名空間成員的方法

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

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

  • 使用命名空間別名: namespace TV = Television; // TV等同Television
  • 使用格式: using 命名空間成員名 using ns1::Student; // Student等同ns1::Student
  • 使用: using namespace 命名空間名

案例

h1.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

h2.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 "h1.h"
#include "h2.h"
using namespace std;

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

    return 0;
}

到此這篇關于C/C++中命名空間(namespace)詳解及其作用介紹的文章就介紹到這了,更多相關C++命名空間內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C++調用Python基礎功能實例詳解

    C++調用Python基礎功能實例詳解

    c++調用Python首先安裝Python,本文以win7為例,給大家詳細介紹C++調用Python基礎功能,需要的朋友參考下吧
    2017-04-04
  • C++四種case的詳細介紹小結

    C++四種case的詳細介紹小結

    本文主要介紹了C++四種case的詳細介紹小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • C++可變參數(shù)模板深入深剖

    C++可變參數(shù)模板深入深剖

    個可變參數(shù)模板(variadic template)就是一個接受可變數(shù)目參數(shù)的函數(shù)模板或類模板,下面這篇文章主要給大家介紹了關于C++可變參數(shù)模板的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • C++中指向對象的常指針與指向常對象的指針詳解

    C++中指向對象的常指針與指向常對象的指針詳解

    如果一個變量已經被聲明成常變量,則只能用指向常變量的指針變量指向它,而不能用一般的(非const型的)指針變量指向它
    2013-10-10
  • 利用C語言實現(xiàn)http服務器(Linux)

    利用C語言實現(xiàn)http服務器(Linux)

    本文將利用C語言實現(xiàn)一個輕量級的http服務器,使用Reactor模式,即主線程只負責監(jiān)聽文件描述符上是否有事件發(fā)生,有的話立即將該事件通知工作線程,感興趣的可以了解一下
    2022-07-07
  • 如何在C語言中提取Shellcode并執(zhí)行

    如何在C語言中提取Shellcode并執(zhí)行

    Shellcode是一種獨立于應用程序的機器代碼,通常用于實現(xiàn)特定任務,如執(zhí)行遠程命令、注入惡意軟件或利用系統(tǒng)漏洞,本文將深入探討如何在C語言中提取Shellcode,并通過XOR加密技術增加其混淆程度,文中通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2023-12-12
  • 深入分析C++模板特化與偏特化

    深入分析C++模板特化與偏特化

    這篇文章主要介紹了C++模板特化與偏特化的相關資料,幫助大家更好的理解和學習c++,感興趣的朋友可以了解下
    2020-08-08
  • wince程序防止創(chuàng)建多個實例實現(xiàn)互斥作用

    wince程序防止創(chuàng)建多個實例實現(xiàn)互斥作用

    什么時候用的互斥?當你的程序只允許同時打開一個的時候,就可以通過互斥來實現(xiàn),下面說的互斥,主要是針對防止程序創(chuàng)建多個實例這種情況來實現(xiàn)的
    2014-02-02
  • c++實現(xiàn)排序算法之希爾排序方式

    c++實現(xiàn)排序算法之希爾排序方式

    這篇文章主要介紹了c++實現(xiàn)排序算法之希爾排序方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • C++實現(xiàn)LeetCode(32.最長有效括號)

    C++實現(xiàn)LeetCode(32.最長有效括號)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(32.最長有效括號),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07

最新評論

龙川县| 滁州市| 侯马市| 新郑市| 平顺县| 英超| 南木林县| 西城区| 镇江市| 苍溪县| 江西省| 乌拉特中旗| 车险| 东丰县| 贵州省| 托克托县| 石林| 清丰县| 博兴县| 周口市| 石林| 昌乐县| 台北市| 乌苏市| 东山县| 隆林| 鹤庆县| 扬中市| 平阳县| 苗栗县| 新余市| 柯坪县| 泽州县| 常山县| 治多县| 博爱县| 都江堰市| 鲜城| 昭觉县| 越西县| 津南区|