設定預設形參增加函式的彈性
函式1:
void display(const vector&ivec)
分析:此函式非常霸道的將輸出繫結到cout物件上,只能輸出到螢幕上;
改進:通過給函式新增ostream引數,可選擇輸出到螢幕上還是檔案中,設定其預設值為cout,表明預設輸出至螢幕上;
void display(const vector&ivec,ostream &os=cout)
{for(int ix=0;ix!=ivec.size();++ix)
os《技巧:
將ostream &os作為形參傳遞,並設預設值為cout,增加輸出目的地的彈性選擇,即使用者指定輸出至螢幕上還是檔案中;
函式2:
void func_vec(const vector&ivec,ofstream *ofil=0)
{//操作ivec
if(!ofil)
(*ofil)<<...
分析:將ofstream *ofile作為引數,並設預設值為0,可以彈性選擇是否將資訊輸出到檔案中,使使用者有權利將輸出資訊關閉掉;
注:此處必須為ofstream *型別而不能為 ofstream &型別,因為pointer型別可以設為零,來實現關閉輸出資訊的效果,而reference無法設為零,因此,reference一定的代表某個物件;故當需要選擇開啟or關閉流時傳遞ofstream *型別,當需要選擇將流關聯到螢幕or檔案時傳遞引數ostream &;
結論:1.指標做形參的小技巧;
2.當我們為某個引數提供了預設值,則這個引數右側的所有引數都必須具有預設引數值;
3.預設值只能指定一次,可以在函式宣告出,也可以在函式定義處,但不能兩個地方都指定;
子類建構函式會預設呼叫父類無參建構函式
1.呼叫父類無參建構函式是預設的!子類的構造方法預設都去訪問了父類的無參構造方法 在子類中的構造方法後都有一行預設語句 base 12 3456 78910 1112 1314 15class fu class zi fu zi z new zi 先執行父類的建構函式把父類初始化完成,再初始化子類的...
C 帶預設形參的函式
先上 int sub int x 8,int y 3 void main 注意事項 1 c 呼叫函式時,引數是自由到左入棧的。因此,預設形參必須從右向左連續定義,並且在乙個預設形參的右邊不能有非預設的形參。int f int a,float b 5.0,char c int d 10 正確 int ...
c 帶預設形參值的函式
int add int x 5,int y 6 int add int x 5,int y 6,int z 7 int main void 函式宣告或者定義的時候,可以給形參賦一些預設值,呼叫函式時,若沒有給出實參,則按指定的預設值進行工作。函式沒有宣告時,在函式定義中指定形參的預設值 函式既有定義...