2006 06 08 23 46 [C++] the overhead of class member function pointe

PS: 在VC下,size一樣是4 bytes.但用gcc會是8 bytes.

以下摘錄自BBS programming版.

 

 作者  tinlans.bbs@whshs.cs.nccu.edu.tw (汀),               看板  programming
 標題  Re: 學C好還是C++?
 時間  政大狂狷年少 (Thu Jun  2 11:56:08 2005)
 路徑  maple!netnews.cs.nthu!news.cs.nthu!WHSHS
───────────────────────────────────────

class member function pointer,
這是 C++ 特有的 function pointer,
size 在大部分的 C++ 環境都是一般指標的兩倍,
這個 overhead 也算是 C++ 的常識之一,
不過很多教授不知道...

 

#include <iostream>

using namespace std;

class X {
        void foo() { }
};

int main()
{
        void (X::*ptr)(void);

        cout << sizeof(ptr) << endl;
        return 0;
}