WindowsXP SP2 MFC使用 VC++ .Net 2003です。

Aという基本クラスを作り、Aクラスを派生したクラスを100個ほど作ります。
その際、派生クラスの名前をA_00, A_01, A_02....A_99というふうに、基本クラス名の後に2ケタの数字がつくようにします。
そしてそのAの派生クラス達をあるクラスで生成し、それぞれの呼ぶのですが、
その生成の個所が以下のようになってしまいます。

pA[0] = new A_00();
pA[1] = new A_01();
:
:
pA[99] = new A_99();

で、質問なのですが、クラス名の文字列から、クラスオブジェクトを生成できないでしょうか?
それができると生成の個所が
for( int i = 0; i < 100; i++ )
{
  CString className;
  className.Format( "A_%02d", i );
  pA[i] = (A*)new XXXX( className );  ←これが不明
}
というふうに簡素化できるのですが…。