日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 芯聞號 > 充電吧
[導讀]返回類型后置除了構(gòu)造函數(shù)和析構(gòu)函數(shù)以外,函數(shù)聲明都需要明確函數(shù)的返回類型,在傳統(tǒng)的C或者C++中,函數(shù)聲明大致是這個樣子:int getSum(int a, int b);第一個int就是函數(shù)的返回類

返回類型后置


除了構(gòu)造函數(shù)和析構(gòu)函數(shù)以外,函數(shù)聲明都需要明確函數(shù)的返回類型,在傳統(tǒng)的C或者C++中,函數(shù)聲明大致是這個樣子:


int getSum(int a, int b);


第一個int就是函數(shù)的返回類型,它表明函數(shù)的返回值類型為整數(shù)。在新的C++11以后,我們也可以這樣聲明:


auto getSum(int a, int b)->int;


在原來放返回值類型的位置寫auto,在函數(shù)聲明結(jié)束以后接一個'->'再跟著寫函數(shù)的返回值類型。兩種方式的效果是一樣的。


返回數(shù)組指針


一般情況下,當函數(shù)要返回多個數(shù)據(jù)時,會選擇將數(shù)據(jù)封裝在類(或結(jié)構(gòu)體)中返回,或者直接返回一個指針。


這兩種方式要么麻煩,要么沒有辦法取得數(shù)據(jù)的數(shù)量。其實我們真正的需求就是返回一個數(shù)組(可以計算維度的)指針。這種方法是存在的:


int?(*getResultArray(int?mode))[10];


通過上面的形式,聲明了一個返回包含10個整數(shù)的數(shù)組的指針。對于這樣一個指針,我們可以像數(shù)組一樣使用:


auto?arr?=?getResultArray(1);

cout?<<?sizeof(*arr)/sizeof(**arr)?<<?endl; //可以正確計算維度。


當然, 有經(jīng)驗的程序員會這么做:


typedef?int?arr10[10];

arr10*?getResultArray(int?mode)


C++11增加了返回類型后置以后,我們有了新的選擇:


auto?getResultArray(int?mode)->int(*)[10];


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


作者觀點


先當工具收著,今后一定有更大的用處。


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉