作者pracinverse (改)
看板C_and_CPP
標題[問題] static 的 class member function
時間Thu Dec 15 00:07:40 2011
有幾個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
推 elfkiller:functor 12/15 00:33
→ Chikei:如果是給定的callback fn prototype,可用functor 12/15 02:14
→ Chikei:如果兩邊都是給定的或者覺得op()不適合,可以用boost bind 12/15 02:16
→ Chikei:半夜推文腦袋不清醒...如果callback signature沒有預留傳壯 12/15 10:06
→ Chikei:態的參數,那正常的方法應該只有用static/global變數來傳 12/15 10:08
→ pracinverse:THANKS 12/19 23:00
推 WJAider:用 template 傳進 functor (來亂的 12/25 15:40
→ WJAider:我錯了,傳進 functor 的 constructor 就好啦 12/25 15:41