Re: [問題] 關於Class指標的觀念

作者: descent (「雄辯是銀,沉默是金」)   2018-06-01 18:19:08
有了 cfront 之後, 可以看到 member function pointer 是怎麼實作的。
void (A::*mf)() = 0;
printf("sizeof(mf): %u\n", sizeof(mf));
這個程式碼被轉成
typedef int (*__vptp)(void);
struct __mptr {short d; short i; __vptp f; };
struct __mptr __1mf ;
printf ( (const char *)"sizeof(mf): %u\n", sizeof __1mf ) ;
所以這就是為什麼這個指標印出來的大小是 16 (64bit 機器), 而不是 8。
cfront 可以為我們揭露大多數 c++ 實作的祕密。
作者: bigbite (子子孫孫永保用)   2018-06-02 13:13:00

Links booklink

Contact Us: admin [ a t ] ucptt.com