看完就懂 C 的命名空間

2021-10-08 22:34:50 字數 805 閱讀 4771

命名空間是用來組織和重用**的編譯單元。namespace(名字空間),是為了解決命名衝突的問題而引入的概念。通過使用 namespace ***(就是***使用的範圍),你所使用的庫函式或變數就是在該名字空間中定義的,這樣一來就不會引起不必要的衝突了。c++標準程式庫中的所有識別符號都被定義於乙個名為std(standard)的namespace中。

一 :和格式不一樣,前者沒有字尾。兩者是兩個不同的檔案。字尾為.h的標頭檔案c++標準已經明確提出不支援了。因此,當使用時,相當於在c中呼叫庫函式,使用的是全域性命名空間,也就是早期的c++實現;當使用的時候,該標頭檔案沒有定義全域性命名空間,必須使用namespace std;這樣才能正確使用cout。

二: 由於namespace的概念,使用c++標準程式庫的任何識別符號時,可以有三種選擇:

1、直接指定識別符號。例如std::ostream而不是ostream。完整語句如下: std::cout << std::hex << 3.4 << std::endl;

2、使用using關鍵字。 using std::cout; using std::endl; using std::cin; 以上程式可以寫成 cout << std::hex << 3.4 << endl;

3、最方便的就是使用using namespace std; 這樣命名空間std內定義的所有識別符號都有效(**)。但這又會帶來了乙個新問題。無數原有的c++**都依賴於使用了多年的偽標準庫中的功能,他們都是在全域性空間下的。所以就有了和等等這樣的標頭檔案,乙個是為了相容以前的c++**,乙個是為了支援新的標準。命名空間std封裝的是標準程式庫的名稱,標準程式庫為了和以前的標頭檔案區別,一般不加".h"

php 命名空間詳細介紹,看完就懂

php的命名空間 namespace 是php5.3之後才有的。這個概念在c 中已經很早就有了,php中的namespace其實和c 的概念是一樣的。假設如果不使用namespace,那麼每個類在乙個專案中的名字就必須是固定的。因為php在new的時候不管是呼叫autoload還是呼叫已載入過的類,...

C語言 結構體篇(看完就懂系列)

看到結構體,那麼大家肯定知道陣列,學習結構體,把一維陣列和它進行比較會比較容易理解。一維陣列 陣列裡的每個元素都是同種型別的元素,例如 int 3 裡面的每個元素都是整數 結構體 結構體裡面的元素可以不是同種型別的元素,例如 struct num 這個結構體裡的元素可以各種各樣的,當定義好了結構體,...

看完絕對懂的IFC

ifc inline formatting context 行內格式化上下文。與塊級元素形成對比,當元素的 css 屬性 display 的計算值為 inline,inline block,inline table,inline flex 或 inline grid 時,它是行內級元素。視覺上它將內...