+1 for Inside the C++ Object Model. Understanding the mechanics of abstractions like virtual methods (along with stack/heap, pointers, but those are less C++-specific) makes you much more confident in what your code is doing (and why you might do it that way).