您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么理解C++11的返回類型后置”,在日常操作中,相信很多人在怎么理解C++11的返回類型后置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”怎么理解C++11的返回類型后置”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
返回類型后置
除了構(gòu)造函數(shù)和析構(gòu)函數(shù)以外,函數(shù)聲明都需要明確函數(shù)的返回類型,在傳統(tǒng)的C或者C++中,函數(shù)聲明大致是這個(gè)樣子:
int getSum(int a, int b);
第一個(gè)int就是函數(shù)的返回類型,它表明函數(shù)的返回值類型為整數(shù)。在新的C++11以后,我們也可以這樣聲明:
auto getSum(int a, int b)->int;
在原來放返回值類型的位置寫auto,在函數(shù)聲明結(jié)束以后接一個(gè)'->'再跟著寫函數(shù)的返回值類型。兩種方式的效果是一樣的。
返回?cái)?shù)組指針
一般情況下,當(dāng)函數(shù)要返回多個(gè)數(shù)據(jù)時(shí),會(huì)選擇將數(shù)據(jù)封裝在類(或結(jié)構(gòu)體)中返回,或者直接返回一個(gè)指針。
這兩種方式要么麻煩,要么沒有辦法取得數(shù)據(jù)的數(shù)量。其實(shí)我們真正的需求就是返回一個(gè)數(shù)組(可以計(jì)算維度的)指針。這種方法是存在的:
int (*getResultArray(int mode))[10];
通過上面的形式,聲明了一個(gè)返回包含10個(gè)整數(shù)的數(shù)組的指針。對(duì)于這樣一個(gè)指針,我們可以像數(shù)組一樣使用:
auto arr = getResultArray(1);
cout << sizeof(*arr)/sizeof(**arr) << endl; //可以正確計(jì)算維度。
當(dāng)然, 有經(jīng)驗(yàn)的程序員會(huì)這么做:
typedef int arr10[10];
arr10* getResultArray(int mode)
C++11增加了返回類型后置以后,我們有了新的選擇:
auto getResultArray(int mode)->int(*)[10];
比第一種形式容易理解很多。也不需要自定義類型。
到此,關(guān)于“怎么理解C++11的返回類型后置”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。