Specifically, I'm having a fit over this: If I move function B after function A, then function A won't call my version of B, but an inherited version. This, in spite of the fact that both A and B are forward declared before either definition. What gives?