C++: Under the Hood

This is an article written by Jan Gray. It is quite old, but most of the contents still apply today.

The original article on MSDN can no longer be found. Here is the pdf version on OpenRCE: https://www.openrce.org/articles/files/jangrayhood.pdf.


How are classes laid out?
How are data members accessed?
How are member functions called?
What is an adjuster thunk?
What are the costs:
    Of single, multiple, and virtual inheritance?
    Of virtual functions and virtual function calls?
    Of casts to bases, to virtual bases?
    Of exception handling?