您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么理解C++11的返回類型后置”,在日常操作中,相信很多人在怎么理解C++11的返回類型后置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么理解C++11的返回類型后置”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
返回類型后置
除了構造函數和析構函數以外,函數聲明都需要明確函數的返回類型,在傳統的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];
比第一種形式容易理解很多。也不需要自定義類型。
到此,關于“怎么理解C++11的返回類型后置”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。