[問題] static 的 class member function

看板C_and_CPP (C/C++)作者 (改)時間14年前 (2011/12/15 00:07), 編輯推噓3(306)
留言9則, 4人參與, 最新討論串1/1
有幾個static的觀念待釐清: class裡面的member function若被設為static, 就無法存取class的member data,也無法呼叫其他non-static的member function, 除非把this pointer當參數傳進這個static member function, 以上觀念應該沒有錯吧? 當希望把class中的member function當成callback function設給其他函數的時候, 就必須把該function設為static,所以這個static function就無法存取class的member了 又因為通常callback function的prototype已經固定, 也沒辦法修改讓他再多帶一個this pointer當參數, 所以還有其他方式可以讓這個要成為callback function的static member function存取 class裡的member嗎? THANKS~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.240.146.151

12/15 00:33, , 1F
functor
12/15 00:33, 1F

12/15 02:11, , 2F
yes,沒有一定要static,可以參考http://goo.gl/wj06T
12/15 02:11, 2F

12/15 02:14, , 3F
如果是給定的callback fn prototype,可用functor
12/15 02:14, 3F

12/15 02:16, , 4F
如果兩邊都是給定的或者覺得op()不適合,可以用boost bind
12/15 02:16, 4F

12/15 10:06, , 5F
半夜推文腦袋不清醒...如果callback signature沒有預留傳壯
12/15 10:06, 5F

12/15 10:08, , 6F
態的參數,那正常的方法應該只有用static/global變數來傳
12/15 10:08, 6F

12/19 23:00, , 7F
THANKS
12/19 23:00, 7F

12/25 15:40, , 8F
用 template 傳進 functor (來亂的
12/25 15:40, 8F

12/25 15:41, , 9F
我錯了,傳進 functor 的 constructor 就好啦
12/25 15:41, 9F
文章代碼(AID): #1EwCdFlW (C_and_CPP)
文章代碼(AID): #1EwCdFlW (C_and_CPP)