缺省函數
缺省函數是聲明或者定義函數時爲函數的參數指定一個默認值,在調用該函數的時候如果沒有指定實參就採用該默認值,不然就使用指定的實參
全缺省函數
void funtest(int P1 = 1, int p2 =2)
{ }
int main()
{
//int a = 10;
//int b = 20;
funtest(a,b);
//如果不給a,b賦值,那麼a = 1,b = 2;賦值的話便爲賦值的值
}
半缺省函數
void funtest(int p1, int p2 =2)
{ }
在使用缺省參數的時候必須注意
1.缺省參數的賦值必須時從右到左,就是帶缺省值的參數必須在參數列表的最後面
void funtest(int a = 1,int b=2){}
void funtest(int a ,int b = 2){}
以上兩種情況是正確的
void funtest(int a = 1; int b)
這種情況是不允許的
2.缺省參數不能同時出現在函數的聲明和定義中,
3.缺省值必須是常量或者全局變量
函數重載
函數重載是函數的一種特殊情況,C++允許在同一作用域中聲明幾個功能類似的同名函數,這些同名函數的參數列表必須不同,一般用來處理一些功能類似但是數據類型不同的問題,比如加法運算,但是參數可以爲int ,可以爲 long,可以爲flout
整形的運算
int Add(const int _number1, const int _number2)
{
cout<<_FUNCTION__<<":"<<__LINE__<<endl;
return (_number1+_number2);
}
cout<<dd(10,20)<<endl;
長整形的運算
long Add(const long _number1, const long _number2)
{
cout<<__FUNCTION__<<":"<<__LINE__<<endl;
return(_number1+_number2);
}
cout<<Add(100L,200L)<<endl;
這兩個函數名稱都是Add,在C語言中運行時會提示函數的重定義。但是同時存在於
(C++)代碼中運行並不會出現出現錯誤,這就與函數在C++中修飾方式有關了