SIV-PIRATE
Ладно, по теме. Во-первых, ООП - абсолютно другая тема, какое место обсуждению принципов ООП в теме про C++ - не ясно.
Во-вторых, раз на то пошло - задам первый вопрос, выяснять ответ на который мне откровенно лениво, хотя интересно. Каким образом Visual C++ компилирует виртуальные функции и их вызов? Он делает какую-нибудь оптимизацию, или постоянно в тупую вызывает, даже если очевидно применение конкретного блока кода?