有時候我們想給函式傳遞實參,但是實參的數目又無法預知,這時候該怎麼辦?
initializer_list形參
如果函式的實參數目未知但是全部實參的型別都相同,可以使用initializer_list型別的形參。initializer_list是一種標準庫型別,用於表示某種特定型別的值的陣列。initializer_list定義在同名頭檔案中。
和vector一樣,initializer_list也是模板型別,提供的操作有
1 initializer_listlst;//預設初始化,t型別的空列表
2 initializer_listlst=;
3 lst.size();//
元素數量
4lst.begin();
5 lst.end();
1 #include 2 #include 3using
namespace
std;
4void func(initializer_listlst)59
intmain()
10);//形參傳遞值序列,必須把序列放在花括號裡
12return0;
13 }
應該注意的是,initializer_list物件中的元素為常量值,無法改變其元素的值。
省略符形參
省略符形參是為了方便c++訪問某些特殊c**而設定的。應該注意大多數類型別的物件在傳遞給省略符形參時無法正確拷貝。
形式有以下兩種:
void foo(…);//
void foo(parm_list,…);//parm_list指定了部分形參型別
含有可變形參的函式(十四)
例項目的 用可變引數實現個數不定的字串的傳遞 include head.h void print int num,num為可變引數的個數 int main int argc,char argv void print int num,va list argp 需先定義引數列表變數 va start a...
可變形參函式
在c 程式設計中,有時我們需要編寫一些在源 編寫階段無法確定引數個數,有時甚至無法確定引數型別的函式。因此我們需要一類函式 它們可以在執行時取任意的實參個數並根據實參的個數自動處理不同實參的情形,或者至少可以在執行時指定任意的實參個數。在c 中實現乙個變參函式的方法有三種 重點介紹第一種方法和第三種...
可變參函式(my printf可變參函式的實現)
可變參函式 其引數列表的引數型別與個數可變,採用ansi標準形式時,引數個數可變的函式的原型宣告是 type funcname type para1,type para2,至少需要乙個普通的形式引數,後面的省略號不表示省略,而是函式原型的一部分,為引數佔位符,type是函式返回值和形式引數的型別 可...