C 篇之命名空間與引用

2021-08-22 07:14:16 字數 1189 閱讀 7361

命名空間

using namespace ::std //使用標準的命名空間,命名空間是用來解決全域性變數的命名衝突的問題。

這裡寫**片

#include

using

namespace ::std;//使用標準的命名空間

namespace one

namespace two

int main(int arg,char *argv)

c語言的引數傳遞是按值傳遞,c++中按值傳遞和按引用傳遞,按引用傳遞的實質還是指標。

引用和引用引數

引用 1 引用是別名,在宣告時必須初始化,在實際**中主要用作函式的形式引數

2 引用作為目標的別名而使用,對引用的改動實際就是對目標的改動。

3 為了建立引用,需要先寫上目標的型別,再加上引用運算子「&」,然後是引用的名字。

舉例:

int intone;

int &rint = intone;//rint就是引用的名字,&引用運算子,目標型別是int ,初始化為intone,以後對rint的改動就是對intone 的改動。intone的位址和rint的位址一樣。

&只有在宣告引用時是引用操作符,其他時候都是位址操作符。

引用和變數指向同乙個單元,引用一旦初始化它就維繫在一定的目標上再也不分開。

由於指標也是乙個變數,可以有指標變數的引用,舉例說明

int *a = null;

int * &rpa = a;//int *型別的引用,初始化為a

int b = 8;

rpa = &b;//rpa是a的別名,也是個指標。

不能建立引用的陣列,沒有引用的指標和引用的引用。有空指標沒有空引用。

引用的引數傳遞

1 傳遞引用給函式和傳遞指標的效果一樣。

void swap(int &x,int &y)//引用作為引數

{ int temp;

temp = x;

x = y;

y = temp;

} 使用引用作為引數和返回值給函式的意義?

1函式只能返回乙個值,如果程式需要從函式返回兩個值怎麼辦?用引用給函式傳遞兩個引數,然後由函式往目標中填入正確的值。

2 函式返回值時,要生成乙個副本,而引用作為返回值時不生成值的副本,所以提高了效率。

C 命名空間 預設命名空間與匿名命名空間

2.匿名命名空間 預設命名空間也叫全域性命名空間,所有沒有置於某一具體命名空間下的 即在預設命名空間下,例如func main 函式。include void func void intmain int argc,char ar void func void 需要注意的是 這個就是類似於c語言裡簡單...

C 之命名空間

c中是沒有命名空間這個概念的,是c 中新引入的乙個東西,為了處理同名的衝突。其實命名空間就是封裝的乙個概念。把一些變數 函式 類給封裝起來。和類的封裝概念很像,但是比類的封裝要大。一 1.自定義定義命名空間 格式 namespacename namespace my 此 的目的就是想往命名空間std...

C 之命名空間

一 命名空間的定義與簡介 命名空間是ansi c 引入的可以由使用者命名的作用域,用來處理程式中常見的命名衝突。例如有兩個標頭檔案中都定義了student類,那麼在主程式中都包含這兩個標頭檔案時,使用student類便會編譯出錯。或者在程式中引入不同的庫時有相同的實體名,則在編譯時就會出現名字衝突。...