CBaseを基底クラスとしたCAとCBと言うクラスが有ります。
そしてCBaseにはhoge()と言う仮想関数を実装しています。
そして現在、以下のようなコーディングをしていますがー
CBase* pBase;
switch (i)
{
case 0:
 pBase = new CA;
 break;
case 1:
 pBase = new CB;
 break;
}
pBase->hoge();

正直綺麗じゃないし無駄なような気がします。
クラスを配列に定義して以下のように何とか出来ないでしょうか。
pBase = new class[i];