[問題] Effective C++ Item 27 問題重現
問題(Question):
最近在讀Effective C++ 第三版
侯老大翻譯的版本
條款27,裡面有一段話讓我非常震驚,節錄如下
===
class Base { ... };
class Derived: public Base { ... };
Derived d;
Base *pb = &d; // implicitly convert Derived* → Base*
這裡我們只是創建了一個指向一個 derived class object(派生類物件)的
base class pointer(基類指標),但是有時候,這兩個指標的值並不相同。
在這種情況下,會在運行時在 Derived* 指標上應用一個偏移量以得到正確的
Base* 指標值。
===
我試著想要重現問題,看看pb的型態是不是真的會影響指標位址,
可是試不出來,我不管怎麼轉型這個指標的值都一樣阿。
不知道是不是compiler的關係? (我用gcc)
有沒有人能重現過這個問題呢?
先謝謝囉
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.158.103
推
01/20 22:38, , 1F
01/20 22:38, 1F
推
01/20 22:42, , 2F
01/20 22:42, 2F
→
01/20 23:33, , 3F
01/20 23:33, 3F
→
01/20 23:35, , 4F
01/20 23:35, 4F
※ 編輯: chchwy 來自: 114.45.102.54 (01/21 01:16)
→
01/21 04:15, , 5F
01/21 04:15, 5F
→
01/21 04:16, , 6F
01/21 04:16, 6F
→
01/21 04:16, , 7F
01/21 04:16, 7F
※ 編輯: chchwy 來自: 114.45.107.45 (09/13 16:00)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章