>>210
仮想メンバ関数を多用しているのは、端的に言うと>>212の意味。
基底クラスなどでvirtual宣言している仮想メンバ関数は継承クラスで再定義できる。
>>203を例にとると、

static MoveableObject spriteTable[MAX_SPRITE_COUNT];

int eventLoop()
{
 for(int i = 0; i < MAX_SPRITE_COUNT; i++){
  spriteTable[i]->doMove();
 }
 return(returnCode);
}
void intialize()
{
 memset(spriteTable, 0, sizeof(spriteTable));
 spriteTable[0] = new MoveableObject();
 spriteTable[1] = new UserObject();
 spriteTable[2] = new NPCObject();
 while(!exitFlag){
  eventLoop();
 }
}
こんな感じで使うとして、i==0の時はMoveableObjectクラスのdoMoveに制御がまわり、
i==1 -> UserObjectクラスのdoMove()
i==2 -> NPCObjectクラスのdoMove()に制御がまわる。
使う側はその実際のクラスがなんであれ基底クラスとして扱えば
実際の制御は派生クラスで行ってくれるという感じ。

詳しくは派生クラスとバーチャル関数辺りを調べれば出てくると思う。