關(guān)于函數(shù)重載有一些細(xì)節(jié)需要注意:
函數(shù)重載的關(guān)鍵是參數(shù)列表(或稱函數(shù)特征標(biāo))不同。請記住,是特征標(biāo),而不是返回類型使得函數(shù)進(jìn)行重載。即,返回類型可以不同或相同,但特征標(biāo)必需不同。
注意以下兩個原型無法構(gòu)成重載:
double cube (double x);
double cube (double & x);
從編譯器角度考慮,當(dāng)執(zhí)行cout << cube(x)時,編譯器無法確定究竟用哪一個原型。因此,編譯器把類型引用和類型本身視為同一個特征標(biāo)。
匹配函數(shù)時,并不區(qū)分const和非const變量。具體而言,如果某函數(shù)有用于const和非const參數(shù)的兩種原型,則編譯器會根據(jù)實參是否為const來決定使用哪個原型。如果某函數(shù)僅有const參數(shù)原型,則可以接受const和非const兩種實參;如果某函數(shù)僅有非const參數(shù)原型,則只能接收非const實參。
新聞熱點
疑難解答