1.非引用形參通過復(fù)制實(shí)參值創(chuàng)建和定義函數(shù)的局部對象,從而對形參的操作不改變實(shí)參值。因?yàn)槭菑?fù)制初始化在形參前加const無影響。type function(type2 v) 和type function(const type2 v)是等價(jià)的。這一點(diǎn)在函數(shù)重載時(shí)也要注意,如果同時(shí)出現(xiàn)上述的兩個(gè)函數(shù)則是重復(fù)定義而不是重載。
2.引用形參是實(shí)參的別名,從而對形參的操作改變實(shí)參值。用途:第一,大型的參數(shù)通過復(fù)制初始化效率低時(shí)用引用參數(shù);第二,對于一些不能復(fù)制初始化的參數(shù);第三,可以通過增加形參返回額外的信息。 注意:type function(type2 v) 和 type function(const type2 v)是不同的。
3.const& :一般不需要修改實(shí)參時(shí)用const引用。這主要是考慮到非const引用形參的如下缺點(diǎn):第一,傳遞的實(shí)參必須與形參類型完全相同,而不包含可以隱式轉(zhuǎn)換的類型;第二,傳遞的實(shí)參不能是const,右值。
4.指向指針的引用 type* &v;
5.(1)非引用數(shù)組形參:int*, int[],int[n]。這三個(gè)是等價(jià)的,都傳遞指向第一個(gè)元素的指針。這樣容易產(chǎn)生越界。如何防止越界呢?第一,通過結(jié)束標(biāo)記檢測數(shù)組的結(jié)束,如C風(fēng)格字符串;第二,用標(biāo)準(zhǔn)庫規(guī)范,傳遞第一個(gè)和最后一個(gè)的下一個(gè)元素的指針做參數(shù);第三,顯示傳遞數(shù)組大小的形參。
5.(2)引用數(shù)組形參:type (&arr)[n]; 注意兩點(diǎn):一是,圓括號是必須的,因?yàn)橄聵?biāo)運(yùn)算符的優(yōu)先級更高;二是,表示數(shù)組元素個(gè)數(shù)的n是必須的,因?yàn)橐檬菙?shù)組別名,而數(shù)組是固定長度的。
6.默認(rèn)實(shí)參:第一要考慮位置,第二,如果提供實(shí)參,則它覆蓋默認(rèn)的實(shí)參值。

文章來源:http://liyuxia-life.spaces.live.com/Blog/cns!DA1B364675ACF35!242.entry