[comp.sys.mac.programmer] MPW C++ virtual function tables

a347@mindlink.UUCP (John Miller) (01/05/91)

I've run into a few questions while attempting to translate
from Bjarne Stroustrup's description of virtual functions
to the code emitted by MPW C++.

The virtual function structure for multiple inheritance
is struct __mptr {short d;short i;__vptp f;};

The f member is the function pointer and the d member is
the "delta" value that is used to convert between
(non-leftmost) base class pointers and derived class
pointers.

What is the i member?  Is it ever used or is it
always set to 0?  (Alignment padding, perhaps?)

The virtual functions tables for multiple inheritance
both start and end with "0,0,0" entries. The single
inheritance also start and end with "0" entries. Are these entries ever
accessed?

----------------------------------------------------------------------
John Miller                         (604) 433-1795
Symplex Systems                     AppleLink (rarely)  CDA0461
Burnaby, British Columbia           Fax: (604) 430-8516
Canada                              usenet:  john_miller@mindlink.uucp
----------------------------------------------------------------------