欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

概述

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

在這里插入圖片描述

命名空間

為了解決 C++ 標(biāo)準(zhǔn)庫中的標(biāo)識(shí)符與程序中的全局標(biāo)識(shí)符之間以及不同庫中的所有標(biāo)識(shí)符之間的命名沖突. 標(biāo)準(zhǔn) C++ 庫的所有標(biāo)識(shí)符都定義在一個(gè)名為 std 的命名空間中. 在程序中用到 C++ 標(biāo)準(zhǔn)庫時(shí), 使用 std 作為限定.

我們?cè)趯?“Hello World” 的時(shí)候就曾用到過命名空間 (namespace):

在這里插入圖片描述

命名空間的作用

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

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

命名空間的機(jī)制, 對(duì)于聲明于其中的名稱都進(jìn)行了本地化:

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

在這里插入圖片描述

自定義命名空間

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

格式:

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

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

命名空間成員的方法

一般方法: 引用命名空間成員時(shí), 用命名空間名對(duì)名命名空間成員進(jìn)行限定, 以區(qū)別同名標(biāo)識(shí)符. (命名空間::命名空間成員名)

簡化使用命名空間成員的機(jī)制:

  • 使用命名空間別名: 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;
}

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

相關(guān)文章

  • c++ STL常用遍歷算法

    c++ STL常用遍歷算法

    這篇文章主要介紹了c++ STL常用遍歷算法的實(shí)現(xiàn),幫助大家更好的理解和使用c++,感興趣的朋友可以了解下
    2020-12-12
  • C語言實(shí)現(xiàn)字符串轉(zhuǎn)浮點(diǎn)函數(shù)的示例

    C語言實(shí)現(xiàn)字符串轉(zhuǎn)浮點(diǎn)函數(shù)的示例

    字符串不僅可以轉(zhuǎn)換為整數(shù),也可以轉(zhuǎn)換為浮點(diǎn)數(shù),本文主要介紹了C語言實(shí)現(xiàn)字符串轉(zhuǎn)浮點(diǎn)函數(shù)的示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-02-02
  • C語言求質(zhì)數(shù)的幾種簡單易懂方式

    C語言求質(zhì)數(shù)的幾種簡單易懂方式

    這篇文章主要介紹了C語言求質(zhì)數(shù)的幾種簡單易懂方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • c語言快速排序算法示例代碼分享

    c語言快速排序算法示例代碼分享

    快速排序使用分治法(Divide and conquer)策略來把一個(gè)串行(list)分為兩個(gè)子串行(sub-lists)
    2014-02-02
  • C語言實(shí)現(xiàn)求解最小公倍數(shù)的算法示例

    C語言實(shí)現(xiàn)求解最小公倍數(shù)的算法示例

    這篇文章主要為大家介紹了C語言如何實(shí)現(xiàn)求解任意兩個(gè)正整數(shù)的最小公倍數(shù),文中采用了窮舉法和定理法。感興趣的小伙伴快來跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • C語言數(shù)據(jù)結(jié)構(gòu)之平衡二叉樹(AVL樹)實(shí)現(xiàn)方法示例

    C語言數(shù)據(jù)結(jié)構(gòu)之平衡二叉樹(AVL樹)實(shí)現(xiàn)方法示例

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之平衡二叉樹(AVL樹)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了C語言平衡二叉樹的相關(guān)定義與使用技巧,需要的朋友可以參考下
    2018-01-01
  • C++實(shí)現(xiàn)乒乓球比分判定

    C++實(shí)現(xiàn)乒乓球比分判定

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)乒乓球比分判定,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • 詳解C/C++高精度(加減乘除)算法中的壓位優(yōu)化

    詳解C/C++高精度(加減乘除)算法中的壓位優(yōu)化

    在高精度計(jì)算中數(shù)組的每個(gè)元素存儲(chǔ)一位10進(jìn)制的數(shù)字,這樣的存儲(chǔ)方式并不是最優(yōu)的,32位的整型其實(shí)至少可以存儲(chǔ)9位高精度數(shù)字,數(shù)組元素存儲(chǔ)更多的位數(shù)就是壓位優(yōu)化。本文將展示壓位優(yōu)化的原理以及壓9位的實(shí)現(xiàn)和性能對(duì)比,需要的可以參考一下
    2023-01-01
  • c++通過引用實(shí)現(xiàn)三個(gè)數(shù)字求最大值

    c++通過引用實(shí)現(xiàn)三個(gè)數(shù)字求最大值

    下面我們將通過這個(gè)例子來說明引用的作為函數(shù)參數(shù)的使用方法。需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2013-10-10
  • C++實(shí)現(xiàn)評(píng)教管理系統(tǒng)

    C++實(shí)現(xiàn)評(píng)教管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)評(píng)教管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評(píng)論