c 命名空間 函式過載 預設引數

2021-09-26 13:16:43 字數 1186 閱讀 7662

在c/c++

中,變數、函式和類都是大量存在的,這些變數、函式和類的名稱將都存在於全域性作用 域中,可能會導致很多衝突。使用命名空間的目的是對識別符號的名稱進行本地化,以

避免命名衝突或名字汙

namespace

關鍵字的出現就是針對這種問題的。

1.1 命名空間的定義

namespace n1

}

1.1.1命名空間的巢狀

namespace n2

namespace n3 }

}

1.1.2 同乙個檔案當中,有多個同名的命名空間也沒有關係,編譯器會自動將裡面的內容合併,但是內容不能重名。

有乙個很別緻的問題  

1.2 命名空間的意義

1、名字空間可以解決函式、全域性變數名重複的問題,包在不同的名字空間裡的重複函式實際就是兩個完全無關的函式。

2、名字空間允許巢狀,巢狀內部和外部沒有任何關係。

3、名字空間允許重名,重名的名字空間會被合併。  名字空間是用來定義作用域的。 它解決了c語言中只能用檔案劃分作用域的缺陷。  使用using關鍵字,可以引用乙個名字空間,使得這個名字空間內的所有內容對自己可見。  如果兩個名字空間裡分別有相同的兩個函式,那麼即使我同時用using引用了兩個名字空間,那麼也不會報錯,除非我使用了這個函式(因為使用函式會產生歧義,也就是不知道該調哪個)。

void func(int a , int b , int c=158)

int main()

2.1、預設引數是指,函式的引數列表可以賦初值的情況,呼叫函式是編譯器會自動按照引數的個數來給引數賦值。

如果實參存在那麼傳入實參的內容,如果實參不存在使用預設內容。

2.2、預設引數的分類

2.1.1

void testfunc(int a = 10, int b = 20, int c = 30)

void swapown(float *p, float*b)

int main()

C 命名空間 預設引數 函式過載

使用命名空間是要對識別符號的名稱進行本地初始化,避免命名衝突。定義命名空間需要用到namespace關鍵字,後跟命名空間的名字,在 內為命名空間的成員 普通的命名空間 namespace n1 巢狀的命名空間 namespace n2 namespace n3 同一工程中允許存在多個相同名稱的明明空...

命名空間 預設引數 函式過載 extern C

2.預設引數 3.函式過載 4.extern c c 中的類和庫中有大量的關鍵字,那麼我們定義變數的時候就很容易與這些系統關鍵字發生衝突,使用命名空間的目的就是為了避免與關鍵字發生衝突 舉個簡單的例子,有人來學校找乙個叫張三的人,廣播出去後有非常多叫張三,這樣就導致了混淆,不知道你要找誰。但是你如果...

c 函式過載 預設引數 命名空間的解析

1.c和c 的優缺點解析c語言屬於面向過程。優點是 效能比物件導向高,因為類呼叫時需要例項化,開銷比較大,比較消耗資源。缺點 沒有物件導向易維護 易復用 易擴充套件 c 屬於物件導向 優點是 易維護 易復用 易擴充套件,由於物件導向有封裝 繼承 多型性的特性,可以設計出低耦合的系統,使系統更加靈活 ...