推 sorryChen:感謝大師回答(目前還沒試出來) 128.125.87.33 04/18 13:19
※ 引述《sorryChen (陳揚和)》之銘言:
: 也許也有人用過function pointer..
: 比如說寫一個sort 希望能sort 各種型態的資料
: 然後把Comparison 的function用function pointer的方式傳進去
: 我的問題是,如果我的comparison function其實是某個class 的member function
: (需要用到這個class的變數的值才能判定
: 比如說要排序的是每個人的財產 財產這個class中有美金 台幣..等
: 這個物件定義了一個函數,比較總身價,其中計算身價=美金*匯率(物件變數) +台幣
: 這時候要call 寫好的sort 要把比較的這個函數pointer傳進去
: 這有可能嗎..pointer傳進去的時候..還需要用到this->匯率..
: 不知道有沒有大師想做過相似的事情
通常分開兩樣東西傳:
一個 function pointer, 一個 pointer to target object
大部份的 API 做的都是讓你傳 non-member function, 加 pointer to obj.
然後你自己寫一個 static method 傳為 callback, 在 static method
中做 objPtr->myFunc();
你也可以看看 pointer to member function 怎麼做. 不肯定合不合你的
用途
http://www.goingware.com/tips/member-pointers.html
Alien
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.155.236.82