[問題] function pointer有預設參數

看板C_and_CPP (C/C++)作者 (老王)時間15年前 (2011/06/25 12:05), 編輯推噓2(206)
留言8則, 4人參與, 最新討論串1/1
如題 我要如何透過一個function pointer來呼叫一個有預設參數的function呢? 例如 下面這段程式沒辦法成功編譯 謝謝 void foo(int i=3) { cout << i << endl; } void (*bar)(int); int main() { bar = &foo; foo(); // ok, prints '3' bar(1); // ok, prints '1' bar(); // doesn't compile... // default argument lost via function pointer } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.26.98.191

06/25 12:55, , 1F
函數指標不能這樣用。指標 bar 的型態必須跟目標函數 foo
06/25 12:55, 1F

06/25 12:56, , 2F
相同。此例中,該型態為 void (int i)。所以永遠必須
06/25 12:56, 2F

06/25 12:56, , 3F
指定參數1的值,要用預設值就用原本的 foo 別用 bar
06/25 12:56, 3F

06/25 14:56, , 4F
你需要的是C++,不是C
06/25 14:56, 4F

06/25 15:24, , 5F
請教一下a大 該如何用C++達到我想要的功能呢? 謝謝你
06/25 15:24, 5F

06/26 01:23, , 6F
不能這樣用吧 函數指針只能放個(記意體)位置啊
06/26 01:23, 6F

06/26 01:25, , 7F
講好位置的型態了 就是要放數值進去 沒放怎運行?
06/26 01:25, 7F

06/26 01:25, , 8F
還是包成類 在用類的指針 但沒人這樣搞吧 多此一舉
06/26 01:25, 8F
文章代碼(AID): #1E1Lw9aR (C_and_CPP)
文章代碼(AID): #1E1Lw9aR (C_and_CPP)