[問題] function object & function pointer

看板C_and_CPP (C/C++)作者 (Shizuru)時間16年前 (2009/04/21 10:10), 編輯推噓3(305)
留言8則, 3人參與, 最新討論串1/1
就我知道的部分 function object是用class去包 而他也多了function pointer 兩個東西 一個是泛型,一個是Construct 實質上,他就是物件導向的function pointer 那我想請問的是,他有繼承和多型使用上的存在性嗎? 因為敝人最多只有用到泛型+Construct而已 不知道其他的用法,所以想請教一下各位先進 請各位給予一些指點,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.74.245.165

04/21 13:18, , 1F
很少有多型,大部分的functor都是pass by value
04/21 13:18, 1F

04/21 15:05, , 2F
boost::function 可以支多形,非常方便
04/21 15:05, 2F

04/21 19:50, , 3F
那他們有使用上的必要嗎?有的話可以給個例子嗎,謝謝
04/21 19:50, 3F

04/22 00:15, , 4F
當然有啊,你會有用到把 member function 包成functor時
04/22 00:15, 4F

04/22 00:16, , 5F
應該很快就會發現 virtual member function 也有這種需求
04/22 00:16, 5F

04/22 00:17, , 6F
假設你要把 C::f 包進 functor,而你操作的對像是 C*, 而
04/22 00:17, 6F

04/22 00:18, , 7F
C::f 是 virtual 的,這需求應該不會很難理解吧
04/22 00:18, 7F

04/22 08:00, , 8F
雖然不太瞭解,不過先謝謝a大和l大,我會再加揣摩一下
04/22 08:00, 8F
文章代碼(AID): #19xIi5NZ (C_and_CPP)
文章代碼(AID): #19xIi5NZ (C_and_CPP)