C C 程式設計 返回型別後置

2021-10-22 21:38:26 字數 1101 閱讀 1382

除了建構函式和析構函式之外,函式宣告都需要明確函式的返回型別,在傳統的c/c++中,函式宣告大致是這個樣子:

int

getsum

(int a,

int b)

;

第乙個int就是函式的返回型別,它表明函式的返回值型別為整數。在c++11之後,我們也可以這樣宣告:

auto

getsum

(int a,

int b)

->

int;

在原來放返回值型別的位置放auto,在函式宣告結束後面接乙個->在跟著寫返回值型別。兩種方式的效果是一樣的

一般情況下,當返回要返回多個資料時,會選擇將資料封裝在類或者結構體中返回,或者直接返回乙個指標。

這兩種方式要麼麻煩,要麼沒有辦法取得資料的數量,其實我們真正的需求就是返回乙個陣列(可以計算維度的)指標。這種方法是存在的:

int(*

getresultarray

(int mode))[

10];

通過上面的形式,宣告了乙個返回包含10個整數的陣列的指標。對於這樣乙個指標,我們可以像陣列一樣使用:

auto arr =

getresultarray(1

);cout <<

sizeof

(*arr)

/sizeof(*

*arr)

<< endl;

//可以正確計算維度。

當然, 有經驗的程式設計師會這麼做:

typedef

int arr10[10]

;arr10*

getresultarray

(int mode)

c++11增加了返回型別後置以後,我們有了新的選擇:

auto

getresultarray

(int mode)

->

int(*)

[10];

比第一種形式容易理解很多。也不需要自定義型別。

decltype關鍵字與返回型別後置

1.獲知表示式型別 在編譯期完成型別推導 decltype expression 很像sizeof用來推導表示式型別大小 int x 10 decltype x y 1 y int decltype x y z 0 z int const int i x decltype i j y j const...

C C 程式設計 型別

寬字元型別 char16 t char32 t c 11 起 wchar t 有符號整數型別 short int int long int long long int c 11 起 無符號整數型別 unsigned short int unsigned int unsigned long int u...

C 11學習筆記 返回型別後置語法

原創 2016年06月22日 01 48 22 本次學習3個知識點 1 auto推導型別 2 decltype推導表示式的型別 3 返回型別後置語法 泛型程式設計中經常遇到的寫乙個加法函式 template r add t t,u u int a 10 float b 20.0 auto c add...