- 最後登錄
- 2024-11-16
- 在線時間
- 3280 小時
- 註冊時間
- 2004-8-20
- 閱讀權限
- 20
- 精華
- 0
- UID
- 12056
- 帖子
- 476
- 積分
- 967 點
- 潛水值
- 33249 米
| 若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。 callback function ?
真抱歉我不是資工資管畢業的...所以按照我以為的以為來給予答案...倘若不是你期望的答案....那就只好再請其他高人解答了
一般來說...對於涵式呼叫涵式的做法(以上這句腦殘的翻譯是我自我的理解)...我常用的有以下兩種...我都塞到同一個class裡面了....- class QQ
- {
- public:
- int(*_int_int_fun)(int);
- void(*_void_fun)();
- QQ();
- void test_1(int _int = 0);
- void test_2(void(*_void_point)() = NULL , int(*_int_int_point)(int _int) = NULL, int _int = 0);
- };
- QQ::QQ()
- {
- _int_int_fun = NULL;
- _void_fun = NULL;
- }
- void QQ::test_1(int _int)
- {
- if (_int_int_fun != NULL)
- {
- cout << _int_int_fun(_int) << endl;;
- }
- if (_void_fun != NULL)
- {
- _void_fun();
- }
- }
- void QQ::test_2(void(*_void_point)() , int(*_int_int_point)(int _int) , int _int)
- {
- if (_int_int_point != NULL)
- {
- cout << _int_int_point(_int) << endl;;
- }
- if (_void_point != NULL)
- {
- _void_point();
- }
- }
- void aa()
- {
- cout << "A" << endl;
- }
- int cc(int c)
- {
- cout << c << endl;
- return c + 1;
- }
- void main()
- {
- QQ q1;
- q1._int_int_fun = cc;
- q1._void_fun = aa;
- q1.test_1();
- q1.test_2(aa , cc , 2);
- system("pause");
- }
複製代碼 ... |
|