I'm reading the book Inside C++ Object Model and learning about the model of virtual multi-inheritance.
I know that we need insert two kinds of information into each part of base class in a derived class object:
virtual function and virtual base class.
The book proposed two strategies:
1)Two pointers. One for virtual function, the other for virtual base class.
2) One pointer pointing at one table, which contains virtual function slots and virtual base class offsets. We use negative numbers to present the virtual base class offsets.
I think nothing's wrong just now.
Then the book says:
In general, the most efficient use of a virtual base class is that of an abstract virtual base class with no associated data members.
I don't know why no data members in an abstract virtual base class can be more efficient.
The book online is here. Page 68 - 74 to know about more detail about my question.