怎么动态定义指针的数组

如何动态定义指针的数组
我有一个类TClass1;

要在另一个类中定义制定长度的类1的数组,如下:
TClass2{
  TClass1 *TClass1 [10];

  TClass2()
  {
      for(int i=0;i<10;i++)
        TClass1 [i] = new TClass1 ();
 
  }
}

问:如果这个数组长度10需要动态的,是个变量该如何在TClass2中定义和实现这个TClass1数组?
指针

------解决方案--------------------
这里有2种可能性:

1. 数组长度虽然是动态的,但在TClass2生成的时候就可以确定,这样的话,可以如下方式
class TClass2
{
private:
    TClass1 *m_arrClassList;

public:
    TClass2(int count)
    {
        this->m_arrClassList = new TClass1[count];
        for (int i = 0; i < count; i++)
        {
            this->m_arrClassList[i] = new TClass1();
        }
    }
};

2. 数组长度没有办法在TClass2生成的时候确定,可以考虑用TArray这样的集合类实现
------解决方案--------------------
1、多维指针
2、std::vector
3、VCL TArray DynamicArray