[語法] dynamic_cast請教
dynamic_cast的用法我所知如下:
dynamic_cast<son*> (fatherPtr);
會將 fatherPtr轉成 son型別的指標
成功的話會傳回 fatherPtr所指的位址
假設
class Base{
public:
virtual ~Base(){}; };
class A : public Base{};
class B : public Base{};
vector <Base*> ptrs(2);
ptrs[0] = new A;
ptrs[1] = new B;
疑問
A* ptr1 = dynamic_cast<A*> (ptrs[0]);
^^^^^^^fatherPtr指向A obj
A* ptr2 = dynamic_cast<A*> (ptrs[1]);
^^^^^^^fatherPtr指向B obj
這兩個敘述都應該是安全轉型..
為什麼第二行ptr2收到的會是0呢?
查了些資料還是想不通..請幫忙解答, 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.69.128.66
推
07/21 12:54, , 1F
07/21 12:54, 1F
→
07/21 12:55, , 2F
07/21 12:55, 2F
→
07/21 13:02, , 3F
07/21 13:02, 3F
推
07/21 14:16, , 4F
07/21 14:16, 4F
→
07/21 14:23, , 5F
07/21 14:23, 5F
→
07/21 14:24, , 6F
07/21 14:24, 6F
→
07/21 15:34, , 7F
07/21 15:34, 7F
→
07/21 15:35, , 8F
07/21 15:35, 8F
→
07/21 15:35, , 9F
07/21 15:35, 9F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章