[問題] 求助 class 內的function pointer用法
在某一個class內宣告四個public的member function像降:
class A{
.......
public:
void Do(void);
void foo(int a, int b, int c,
void (*f1)(int,int,int), void (*f2)(int,int,int) );
void aaa(int, int, int);
void bbb(int, int, int);
}
void A::foo(int a, int b, int c,
void (*f1)(int,int,int), void (*f2)(int,int,int) ){
...........
(*f1)(a,b,c);
(*f2)(a,b,c);
}
其中,aaa, bbb 已經寫好,此略。
void A::Do(void){
............
int a = 1, b = 2, c = 3;
foo(a, b, c, aaa, bbb);
}
最後,我在main裡面執行,compiler不給我過。
void main(){
A TEST;
TEST.Do();
}
顯示如下:
error C3867: 'A::aaa': 函式呼叫遺漏引數清單,請用 '&A::aaa' 建立成員的指標
error C3867: 'A::bbb': 函式呼叫遺漏引數清單,請用 '&A::bbb' 建立成員的指標
之後,我在Do()內呼叫foo時,
parameters加上&A::aaa、&A::bbb
compiler還是不給過,請各位高手指點一下,
到底哪邊出了問題,謝謝!
p.s. 補充一下喔,如果我把Do()定義中,呼叫foo()的動作拿掉,
Compiler會過。所以我猜是不是我在DO()裡面呼叫foo()時,
有什麼動作做錯?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.144.17
※ 編輯: kkroy 來自: 140.113.144.17 (09/02 22:19)
推
09/02 22:35, , 1F
09/02 22:35, 1F
推
09/02 22:39, , 2F
09/02 22:39, 2F
→
09/02 22:43, , 3F
09/02 22:43, 3F
→
09/02 22:48, , 4F
09/02 22:48, 4F
→
09/02 22:52, , 5F
09/02 22:52, 5F
→
09/02 22:53, , 6F
09/02 22:53, 6F
→
09/02 22:53, , 7F
09/02 22:53, 7F
※ 編輯: kkroy 來自: 140.113.144.17 (09/02 23:00)
→
09/02 22:59, , 8F
09/02 22:59, 8F
→
09/02 23:01, , 9F
09/02 23:01, 9F
→
09/02 23:02, , 10F
09/02 23:02, 10F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 6 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章