1. 程式人生 > >引數預設值

引數預設值

預設引數

宣告:發生在成員函式的過載中

有一些引數的值在每次呼叫函式時都相同,c++利用預設值使書寫變得簡單(在編譯時,預設值有編譯器自動插入)

規則:

1、函式的預設值只能出現在函式的宣告過程中,而不出現在定義體中**

void fun(int x=0,int y=0);//正確,函式的預設值出現在定義中
void fun(int x=0,int y=0) //錯誤,預設值出現在定義中
{
......
}

#include<iostream>
using namespace std;
//宣告
int Max(int a=0,int b=0);
//實現
int Max(int a,int b) { int c=a+b; return c; } //c++忽略了返回值 void main() { Max(1,2); //預設值 Max(); }

原因:

1、函式的實現(定義)與引數有無預設值無關
2、引數的預設值需要修改時,修改宣告,比修改函式定義方便

2、函式有多個引數時,從後往前挨個預設

void fun(int x, int y=0,int z=0);//正確
void fun(int x=0, int y,int z=0);//錯誤

例項

#include<iostream>
using namespace std; class Test { public: //t(1)時,會出現錯誤 //void fun(int b=20,int c=30,int d); // t(1) 出現二義性 //void fun(int b=0); void fun(int b,int c=30,int d=20); }; void Test::fun(int b,int c,int d) { cout<<b<<c<<d<<endl; } void main() { Test t; t.fun(1
); // 1 20 30 t.fun(1,2);// 1 2 30 t.fun(1,2,3);// 1 2 3 }

作用

1、為了使程式碼簡潔
2、提高程式碼的利用性