繼承 與 Callback...
各位先進,午安... <(_ _)>
小的對 nonstatic virtual member function callback 有些困惑,
請看 VCR...
http://codepad.org/tqEbvDzg
先看 class CBase 的部份,
它有兩個 nonstatic member function,一個是 Func(),
另一個是 Seriatim(),裡頭會呼叫 Func()。
Func() 是個 virtual function,
繼承它的類別若要使用 Seriatim(),
因為它的參數有 member function pointer,
我只能想到把 Seriatim 也寫成 virtual;
virtual void Seriatim(int n, CbFuncType cbFunc);
在 CBase 裡 typedef int (CBase::*CbFuncType)(int);
在 CDerv 裡 typedef int (CDerv::*CbFuncType)(int);
只是,Seriatim 裡頭的行為一模一樣,
僅僅是 CbFuncType cbFunc 這個問題,
CBase 所有衍生類別都必須要重新 implement Seriatim 函式,
讓我不禁在想,是不是有什麼神妙的方式可以讓所有子類別共用一個 Seriatim?
--
追根究底所得到的東西,是失望的觀眾,以及狼狽的魔術師...
De'Ring Practice
http://www.wretch.cc/blog/miauwally/21246514
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.90.104
推
06/21 16:00, , 1F
06/21 16:00, 1F
→
06/21 16:00, , 2F
06/21 16:00, 2F
→
06/21 16:03, , 3F
06/21 16:03, 3F
→
06/21 16:04, , 4F
06/21 16:04, 4F
→
06/21 16:05, , 5F
06/21 16:05, 5F
→
06/21 16:05, , 6F
06/21 16:05, 6F
推
06/21 16:18, , 7F
06/21 16:18, 7F
推
06/21 16:31, , 8F
06/21 16:31, 8F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):