這篇文章主要介紹“C++11模板函數(shù)與返回類型后置舉例分析”,在日常操作中,相信很多人在C++11模板函數(shù)與返回類型后置舉例分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++11模板函數(shù)與返回類型后置舉例分析”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)、臨汾網(wǎng)絡(luò)推廣、微信小程序定制開發(fā)、臨汾網(wǎng)絡(luò)營銷、臨汾企業(yè)策劃、臨汾品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供臨汾建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:muchs.cn
漸進(jìn)式說明
最簡單的情況
先考慮我們有一個函數(shù),功能是從一個整數(shù)數(shù)組中取得其中一個元素。
代碼很簡單,但這只是一個引子。本文的所有示例代碼都不考慮下標(biāo)越界的情況,這樣可以更加突出主題。
適用于其他類型
如果希望這個函數(shù)可以適應(yīng)更多類型的數(shù)組,只要引入模板即可。
也沒難多少。
更加通用
如果除了數(shù)據(jù)類型可以擴(kuò)展之外,還希望可以將其應(yīng)用于vector的話,就沒有那么容易了。例如下面的代碼是不能通過編譯的。
不能通過編譯是由于解引用不是數(shù)據(jù)類型,而是操作。如果模板變量為T,而返回值為T*的話是可以正常編譯的。
解決這個問題的方法是使用前面講到過的C++11新特性:返回值類型后置和decltype。代碼如下:
由于decltype需要取得it解引用的類型,所以取得返回值類型的操作必須在it出現(xiàn)之后,即所謂的返回值類型后置。有了這個模板函數(shù)之后,下面的3中情況,代碼都能夠正確無誤地執(zhí)行:
其他的情況
這種做法不僅適用與解引用的場景,其他可以通過參數(shù)取得返回值類型的情況也有效。例如從下面的DblPoint和IntPoint結(jié)構(gòu)體取得成員x的情況:
可以這樣定義模板函數(shù):
到此,關(guān)于“C++11模板函數(shù)與返回類型后置舉例分析”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
網(wǎng)站名稱:C++11模板函數(shù)與返回類型后置舉例分析
網(wǎng)頁網(wǎng)址:http://muchs.cn/article6/gddcog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、小程序開發(fā)、定制網(wǎng)站、網(wǎng)站排名、面包屑導(dǎo)航、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)