理解命名空間,函式過載 預設引數 指標引用

2021-08-30 06:43:23 字數 941 閱讀 7707

在c語言中,命名的名字不能和關鍵字衝突,不能和庫函式裡的名字衝突,所以在c++中,引入了命名空間。為了防止命名汙染,

可以在函式,變數前加上命名空間,命名空間所有內容都侷限與該命名空間。

使用方式:

1.當你用庫函式的名字時,每次都在前加乙個命名空間,例如:std::cout,std::cin。

2.在全域性域宣告,用using namespace   std ,表示所有與庫函式相同的名字都不能使用,但這就使命名空間沒有用了。

3.在全域性域,單獨宣告乙個名字,例如:using  std::cout;

函式過載:使函式的一種特殊情況,c++允許在同一作用域宣告幾個功能類似的同名函式,這些同名函式的形參鍊錶,常用來

處理實現功能類似資料型別不同的問題。

重點:函式過載必須保證引數列表必須不同。因為編譯器底層不是用的函式名,而是經過複雜的修飾,得到乙個名字。在c語言中是通過_函式名字來找函式的。

引用:引用是已存在變數的別名,編譯器不會為它開闢空間的,它和被引用的變數共用一塊記憶體空間。

注意點:引用必須在定義時被初始化。

乙個變數可以有多個引用

引用乙個實體後再不能引用別的實體

千萬不要再返回棧空間上的引用變數,因為當函式生命週期結束時,它就是非法訪問了。

傳值和傳引用

傳值是乙份引數的臨時拷貝,生命週期隨函式,而引用不會,也沒有開闢空間,所以盡可能的用引用,

引用和指標

引用和指標的效率差不多,但是引用更方便理解,更安全。注意的是引用不能有空指標。本質:其實編譯器也是用完成指標的方式去完成的引用的,也就是說他們的彙編**是差不多的。

預設引數是宣告或定義函式是為函式的引數指定乙個預設值。在呼叫該函式時,如果沒有指定引數則採用該預設值,否則使用

指定的引數。

重點:半預設引數必須從有往左依次來給出,不能間隔給。

預設引數不能在函式宣告和定義中同時出現。

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

在c c 中,變數 函式和類都是大量存在的,這些變數 函式和類的名稱將都存在於全域性作用 域中,可能會導致很多衝突。使用命名空間的目的是對識別符號的名稱進行本地化,以 避免命名衝突或名字汙染,namespace 關鍵字的出現就是針對這種問題的。1.1 命名空間的定義 namespace n1 1.1...

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

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

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

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