C 中namespace和class的區別

2021-09-27 12:01:28 字數 813 閱讀 2716

(一)區別:namespace作用是避免程式中的命名衝突,傳統的c++程式是只有乙個namespace,現在程式越來越複雜,為了防止程式設計師在合併不同程式時出現函式、類、結構體等命名的重複,所以用到命名空間,namespace包含類、函式、常量和模板宣告等名字空間成員,例如:

namespace myunderstand

;}

(二)如何將namespace成員類分離成多個原始檔呢?通過以下例子說明:

下面是名為example.h的標頭檔案,其中定義了上面的名字空間myunderstand,它包含類info的宣告,另外在乙個單獨的原始檔example.cpp中,首先包含標頭檔案example.h以便實現類info的成員函式fristinstance()和secondinstance():

#include "example.h"

void myunderstand::info::fristinstance ()

void myunderstand::info::secondinstance()

要是用這個namesapce的成員,就必須使用這個成員在namespace中的路徑,例如使用類info就要新增它的全路徑名即myunderstand::info,這樣就能夠呼叫這個namesapce的類,相同的namespace中的函式呼叫也是如此。

(三)using指令由關鍵字「using namespace」後跟namesapce名字構成,在訪問namesapce空間的成員時不建議經常使用,其原因是這種方法將所有namesapce空間成員注入當前的範圍,從而增加了潛在的名字衝突。

C 中的using和namespace用法

using 第一,引用程式集 即namespace 1 using system 宣告了程式中用到的乙個命名空間 system 我們可以不需要申明這個空間名稱就能直接使用這個空間裡面的類了。console.writeline hello 2 using io system.io 給命名空間 syst...

C 中namespace和class的區別

class和namespace都是命名空間 但是class是封閉的,也就是class只能有乙個標頭檔案 namespace是開放的,特可以在多個檔案裡向同乙個namespace裡面新增東西,例如stl裡面的東西都在名字空間std裡面,但卻定義在了多個檔案裡面。class做命名空間時,與namespa...

C 中的全域性namespace

我們應該知道傳統的c 只有乙個全域性的namespace,但是由於現在的程式的規模越來越大,程式的分工越來越細,全域性作用域變得越來越擁擠,每個人都可能使用相同的名字來實現不同的庫,於是程式設計師在合併程式的時候就會可能出現名字的衝突。namespace引入了複雜性,解決了這個問題。namespac...