c ++ Как мне вызвать конструктор с аргументами класса, который находится внутри массива структур, когда я создаю массив структур? - PullRequest
0 голосов
/ 03 февраля 2019

Как я могу передать аргументы конструктора в класс, который находится в массиве структур?Я пытаюсь использовать реализацию связанного списка.У меня есть массив регионов, каждый из которых имеет связанный список, 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?

1 Ответ

0 голосов
/ 03 февраля 2019

Массив здесь немного отвлекает.

У вас есть класс Region, который не может быть создан по умолчанию, поскольку он содержит член типа Sll, который также не может быть создан по умолчанию,Итак, вы даете ему конструктор.

Затем, решив это, вы вернетесь к массиву: как создать массив объектов не по умолчанию Region? Используя вектор .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...