ZHCU820Y September 2004 – June 2021
指向成员函数对象的指针存储为具有三个成员的结构,布局相当于:
struct {
short int d;
short int i;
union {
void (f) ();
long 0;
}
};
参数 d 是添加到该指针的类对象开头的偏移量。参数 I 是虚函数表的索引,偏移量为1。索引允许表示 NULL 指针。如果函数是非虚函数,则索引的值为 -1。当 I 为 0 时,如果参数f是非虚函数,则为指向成员函数的指针。0 是类对象中虚函数指针的偏移量。