看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《tyc5116 (累人啊....)》之銘言: : 對於最後一個fuction pointer的參數,我也不知道要如何宣告, : 是照著compile的錯誤訊息,依樣畫葫蘆拼出來的 : 只是拼出來結果又跑出undefined symbol的錯誤 : 看書上有說functor可取代function pointer的作法,但我不會用.... 查了一下OnClick的型態應該是這樣 void TPanel::OnClick(__fastcall * (__closure)(TObject * ))(TObject *) 這是它自己跳出下拉式選單所顯示的 開了小程式測試了一下function pointer, 覺得我的觀念應該是沒有錯啊(還是自我感覺良好?) 起手式是像這樣吧 void (*func)() //宣告一個名為func的function pointer,不帶參數,不回傳值 照著這個去變化,compile就不會過(卡在bcb還有__fastcall和__closure) 後來我簡化了一下(其實意思也差不多),暫時忽略bcb的關鍵字 void (*func)() = _Data.m_No[j]->OnClick ; 用來測試compile會不會過,跳出錯誤 Cannot convert 'void (_fastcall * (_closure )(TObject *))(TObject *)' to 'void (*)(TObject *)' 所以就著照著改 void (__fastcall* (__closure)func)(TObject*) = _CutDataVCL.m_palAdjustX[j]->OnClick; or void (__fastcall* (__closure)(TObject*)func)(TObject*) = _CutDataVCL.m_palAdjustX[j]->OnClick; 跳出 Expression syntax 不知道該怎麼改才對? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.249.10.29
tyc5116:今天認真的看了一下這兩個關鍵字的說明,後來就弄出來了 08/04 22:42