[問題] dynamic cast 回傳null??
大家好
目前再用一套library
他class關係大概是
class A;
class B : virtual public A
class C : virtual public B
奇怪的事情是
A* ptr = new C;
C* ptr2 = dynamic_cast<C*>(ptr);
ptr2 一直都是null
而以我的知識只告訴我 只要真的是有繼承關係 轉型就該成功
安全下轉
奇怪的是 若改為
B* ptr = new C;
B* ptr2 = dynamic_cast<B*>(ptr);
ptr2就不會是null....
我開始亂懷疑是不是virtual 繼承阿
或是A 爺爺 無法下轉成 雜交的孫子C
用小程式驗證 都沒有這個問題....
所以請教各位
是不是有什麼情況 dynamic cast就算真有繼承關係還是會return null
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.163.58.205
→
07/17 13:57, , 1F
07/17 13:57, 1F
推
07/17 14:46, , 2F
07/17 14:46, 2F
→
07/17 15:01, , 3F
07/17 15:01, 3F
→
07/17 15:23, , 4F
07/17 15:23, 4F
→
07/17 15:30, , 5F
07/17 15:30, 5F
推
07/17 15:52, , 6F
07/17 15:52, 6F
→
07/17 15:52, , 7F
07/17 15:52, 7F
→
07/17 17:53, , 8F
07/17 17:53, 8F
→
07/17 19:53, , 9F
07/17 19:53, 9F
→
07/17 19:53, , 10F
07/17 19:53, 10F
推
07/17 20:59, , 11F
07/17 20:59, 11F
→
07/17 21:36, , 12F
07/17 21:36, 12F
推
07/17 22:23, , 13F
07/17 22:23, 13F
→
07/17 22:24, , 14F
07/17 22:24, 14F
→
07/17 23:13, , 15F
07/17 23:13, 15F
推
07/18 00:18, , 16F
07/18 00:18, 16F
→
07/18 00:19, , 17F
07/18 00:19, 17F
→
07/18 00:19, , 18F
07/18 00:19, 18F
推
07/18 01:13, , 19F
07/18 01:13, 19F
推
07/18 03:05, , 20F
07/18 03:05, 20F
→
07/18 04:10, , 21F
07/18 04:10, 21F
→
07/18 08:08, , 22F
07/18 08:08, 22F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章