Załóżmy, że mamy klasy AO sizeof z funkcji członka klasy wskaźnik
class A;
i te typedefs
typedef void (A::*a_func_ptr)(void);
typedef void (*func_ptr)(void);
Moje pytanie brzmi dlaczego sizeof (a_func_ptr) zwraca 16, podczas gdy sizeof (func_ptr) zwraca 4 (jak w przypadku dowolnego wskaźnika w systemie x86)?
Na przykład
int main(int argc, char *argv[])
{
int a = sizeof(a_func_ptr);
int b = sizeof(func_ptr);
}
To [z tego powodu] (http://stackoverflow.com/a/13875868/335858). – dasblinkenlight