c ++ 当我创建结构数组时,如何使用结构数组内的类的参数调用构造函数

c++ How do I call a constructor with arguments of a class that is inside an array of structures when I create the array of structures?

本文关键字:结构 数组 构造函数 调用 参数 何使用 创建      更新时间:2023-10-16

如何将构造函数参数传递给结构数组中的类?我正在尝试使用链表实现。我有一个区域数组,每个区域都有一个链接列表,Sll。 (实际上我会有一个 2D 数组。 我找不到/弄清楚使用非默认参数/参数实际调用构造函数的语法。

我想保留 Sll 作为一个类。

class Sll
{
  public:
  unsigned long count;
  unsigned long uMaxEntries;
  void *pDataArray;
  int iSizeOfEachEntry;
  Sll( unsigned long uInSizeOfEachEntry,  unsigned long uInitNumEntries = INIT_NUM_ENTRIES );
}
Sll::Sll(unsigned long uInSizeOfEachEntry, unsigned long uInitNumEntries)
{
  uMaxEntries = uInitNumEntries;
  iSizeOfEachEntry = uInSizeOfEachEntry;
  pDataArray = malloc(iSizeOfEachEntry * uInitNumEntries);
  count=0;
}
...
struct Region {
  int lotsOfOtherStuffToo;
  Sll sllParticles;
};
...
  for(int ii = 0; ii < regionsX; ++ii)
      ppRegions[ii] = new Region[regionsY];  // How call the Sll constructor?

这里的数组有点分散注意力。

您有一个不能默认构造的类Region,因为它包含也不能默认构造的 Sll 类型的成员。所以,你给它一个构造函数。

然后,解决了

这个问题,你回到数组:你如何创建一个非默认Region对象的数组?通过使用向量。