c++: 預設引數
阿新 • • 發佈:2020-08-23
預設引數是指當函式省略了實參之後預設傳入的一個值。
必須通過函式原型設定預設值。另外對於帶引數列表的函式,必須從右向左新增預設值,換句話說,要為某個引數設定預設值,必須為右邊的所有引數提供預設值。
int harpo(int n, int m=4, int a=5); // OK
int parpo(int n, int m=4, int a); // 不行
而在呼叫的時候 harpo()
函式允許提供1、2、3個引數,但不能跳過任何引數:
beeps = harpo(2); // harpo(2, 4, 5); beeps = harpo(1, 2); // harpo(1, 2, 5); beeps = harpo(1, 2, 3); // harpo(1, 2, 3); beeps = harpo(1, , 4); // 不行
預設引數是一個很簡單的概念,只是提供一個便捷的方式,不難理解,看一個例子結束這個討論:
#include <iostream> using namespace std; const int ArSize = 80; char* left(const char* str, int n = 1); char* left(const char* str, int n ) { if (n < 0) { n = 0; } char* p = new char[n + 1]; int i; for (i = 0; i < n && str[i]; i++) { p[i] = str[i]; // copy } while (i <= n) { p[i++] = '\0'; } return p; } int main() { char sample[ArSize]; cout << "get a string: " << endl; cin.get(sample, ArSize); char* ps = left(sample, 4); cout << ps << endl; delete[] ps; ps = left(sample); cout << ps << endl; return 0; }