[問題] 模版類別方法回傳this型態可依子類別改變?
發生問題的程式碼貼在:http://paste.plurk.com/show/1835767
在此例子中,父類別內processing()會回傳(*this),也就是
父類別自己的型態,即使子類別繼承了父類別,在子類別內的
processing(),依然只能回傳父類別的型態。
當然,可以在子類內使用overriding,再重寫一個屬於自己
的processing()也是可行的,但會造成重覆的程式碼,降低
維護性。
請教各位高手,是否可以讓父類別processing()內的return *this,
在被繼承後,子類別的processing()可以真正的"回傳自己",
而不再是父類別型態?
感恩。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.85.5.246
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1395747108.A.9D8.html
推
03/25 19:58, , 1F
03/25 19:58, 1F
→
03/25 20:01, , 2F
03/25 20:01, 2F
推
03/25 20:15, , 3F
03/25 20:15, 3F
推
03/25 20:47, , 4F
03/25 20:47, 4F
→
03/25 20:48, , 5F
03/25 20:48, 5F
→
03/25 20:49, , 6F
03/25 20:49, 6F
謝謝高手們相助,我試著用CRTP,但可能是概念不足,還是沒有成功;
可否請教以目前這個例子,具體而言可以怎麼實作呢?
看到許多範例都有用到static_cast,不知這個例子上是否適用。
※ 編輯: irake 來自: 219.85.5.246 (03/25 22:19)
推
03/25 22:35, , 7F
03/25 22:35, 7F
d1 copy to d2 ^_^
※ 編輯: irake 來自: 219.85.5.246 (03/25 22:55)
→
03/25 23:26, , 8F
03/25 23:26, 8F
→
03/25 23:28, , 9F
03/25 23:28, 9F
感謝kwpn大大!
這個方法繼承一層有效,第二層就不行,但已足夠。
請問覺得processing()怪怪的是指什麼呢?
由您的code,我學到不少,再次感恩。
※ 編輯: irake 來自: 219.85.5.246 (03/26 00:27)
→
03/28 19:20, , 10F
03/28 19:20, 10F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章