C和C 的區別(3)using

2021-10-10 06:53:38 字數 1047 閱讀 3412

using有2種用法:命名空間、型別命名。

c語言只有命名空間這一種用法,c++有2種用法。

1,命名空間(c和c++用法一樣)

(1)使用整個命名空間

如:using namespace std;

也可以自定義命名空間

(2)使用命名空間中的某個成員

如:using std::vector;

2,型別命名(c++獨有)

(1)普通型別

using d = double;

d x = 1.23;

這個用法和typedef一樣

typedef double d;
(2)函式指標

using pfunc=float (*)(float, float);

pfunc f = pow;

cout << f(2, 3);

這個用法和typedef一樣

typedef float (*pfunc)(float, float);
如果函式有過載,那麼函式指標賦值時選擇哪個過載,和直接呼叫時選擇哪個過載的邏輯是類似的:

直接呼叫,按照入參型別選擇過載,函式指標賦值,按照入參和出參型別選擇過載

(3)模板別名

無參別名:(包括有參的vector變成無參的vt這種情況)

using vt=vector;

vt v;

v.push_back(123);

cout《這個用法和typedef一樣

typedef vectorvt;

有參別名:

template using vt=vector;

int main()

{ vtv;

v.push_back(123);

cout《注意,using給有參型別起別名,必須在函式外進行

這個用法,typedef沒有!

using 指令 和 using 語句 C

using 指令 c 參考 visual studio 2010 using 指令有兩個用途 允許在命名空間中使用型別,這樣,您就不必在該命名空間中限定某個型別的使用 using system.text 為命名空間或型別建立別名。這稱為 using 別名指令 using project pc.myc...

typedef 和 using 的區別

定義別名,用於簡化複雜的變數型別巢狀,增加 可讀性,便於優化維護。typedef std vector v s mp int2 ii 引入命名空間 using namespace std 定義別名,類似於typedef using v s mp int2 ii std vector 相對於typed...

C 中using和new的用法

using 根據微軟msdn上的解釋,c 中的using共有三種用途 引用命名空間 為命名空間或型別建立別名 使用using語句。1 引用命名空間 用using來引用命名空間,可以直接在程式中使用命名空間下的型別而不必指定詳細的命名空間,如 using system.servicemodel等等。2...