Click to See Complete Forum and Search --> : size of class


Muralidhar Godi
May 4th, 1999, 02:44 AM
class name {
private:
int first;
int second;
public:
int func(int);
};

If I type the size of the class it says = 8 where the size of int is 4.

If I made the function "func" as virtual the size of class becomes 12. Why?
What the magic with virtual.

chris law
May 4th, 1999, 03:46 AM
there is a vtable (virtual function table) that holds the address of the virtual function. This is necessary to choose the right function depending on the actual object instance (ie inherited function calls other function which might be overloaded by instance class, if directly called, old (not overloaded) code would execute. Called through vtable -> right function code executes. 32 bit pointer eq 4 byte memory space

hope this helps

chrislaw