2012-12-03 53 views
2

我有一個函數Func(string str,int*i=NULL,int*j=NULL,bool ok=false); 我把它叫做是Func(some_string,false);調用C++函數使用默認參數

和節目是crashing..Because我與--is錯誤調用的順序?

+1

是的,你只能在參數列表的末尾省略參數,而不是在中間。 –

+0

發佈代碼,包括呼叫,以及「崩潰」的含義。 – TheBlastOne

+0

如果這實際上是編譯的,它只是用'false'初始化'i',它顯然會以某種方式轉換爲空指針值。你的函數工作是否像'Func(some_string)'一樣調用它? – Angew

回答

2

如果您希望指定ok的值,則還必須爲其之前的所有參數指定值。

0

是的。第二個參數需要一個int值,並且您正在傳遞一個bool值。第三和第四個參數分別取NULL和false。