相比C語言懈费,C++的函數(shù)功能多了很多特性计露,使用起來也更加方便。
一憎乙、函數(shù)重用
在使用邏輯相同但是傳入?yún)?shù)不同時不必重新起名票罐,直接套用該函數(shù)名,只進(jìn)行小小的修改即可使用泞边,在進(jìn)行傳入時系統(tǒng)會自動根據(jù)輸入的數(shù)據(jù)類型選擇使用哪一個函數(shù)该押。這樣我們就可以直接調(diào)用對應(yīng)名字的函數(shù)來實現(xiàn)功能而不用在意輸入的形參的類型。
比函數(shù)重用更方便的是使用函數(shù)模板template阵谚。它徹底免去了我們重復(fù)書寫代碼功能完全相同僅僅是傳入?yún)?shù)不同的函數(shù)多出的勞動量蚕礼。制定完模板后,每當(dāng)函數(shù)調(diào)用時梢什,系統(tǒng)會根據(jù)具體的形參類型奠蹬,生成具體類型的模板函數(shù)。
template<typename U>
void func(U &a, U &b)
{
U tmp = a;
a = b;
b = tmp;
}
像這樣短短的5行代碼就能實現(xiàn)任何相同類型的兩個數(shù)據(jù)之間的交換嗡午,相比之前每種數(shù)據(jù)類型都要寫一個函數(shù)囤躁,大大提高了代碼重用性。
若一段代碼邏輯結(jié)構(gòu)比較簡單并且被頻繁的調(diào)用翼馆,則可以將該段代碼定義為一個inline函數(shù)割以,以上面那個函數(shù)為例,將函數(shù)聲明改為inline void func(U &a,U &b) 即可应媚。在為inline函數(shù)傳參時可以直接將實參間的運算式傳入严沥,函數(shù)會先進(jìn)行實參間的計算,然后才作為形參輸入函數(shù)內(nèi)中姜。
Class消玄,一種新的封裝形式跟伏,一般稱為類。Class內(nèi)定義可以分為2塊翩瓜,public的公共部分和private的私有部分受扳。在public部分你可以定義數(shù)據(jù)類型元素,以及對private部分進(jìn)行調(diào)用的構(gòu)造函數(shù)兔跌。外部不能類內(nèi)部的private進(jìn)行直接修改勘高,必須通過構(gòu)造函數(shù)訪問。
這3樣函數(shù)相關(guān)的內(nèi)容結(jié)合起來使用可以做到更多事情坟桅。熟練使用他們會讓之后的學(xué)習(xí)更加順利华望,今天僅僅是簡單的了解,還需要花些時間消化仅乓。