Гетерогенные списки и DMA

Я пытаюсь создать гетерогенный список, который динамически выделяет память для гетерогенного массива. У меня возникли некоторые проблемы с заявлениями, необходимыми для этой работы. Пока что у меня есть что-то вроде:

class Class1
{
public:
Class1 * GetList( int i, Class1& c );
void Create( int size );

private:
Class1 ** list1;
};

class Class2: public Class1
{
...
};

Class1 * GetList( int i, Class1& c )
{
return c.list1[i];
}

void Class1::Create( int size )
{
list1 = new Class1*[size];
}

int main()
{
Class1 c;
int size = 0;

cin >> size;

c.Create( size );

for( int i = 0; i < size; i ++ )
{
c.GetList( i, c ) = new Class2;

c.GetList( i, c )->SetParams( some params );
}

}

Мне интересно, использую ли я гетерогенный список для динамического хранения указателей родительского класса и правильного их вызова в main. Любая помощь приветствуется.

0

Решение

В зависимости от вашего использования и следуя тому, что мы сказали в комментариях, вы должны изменить GetList для этого:

Class1 *& GetList( int i )
{
return list1[i];
}

Следите за &, В противном случае ваше назначение с помощью GetList(i) =... будет бесполезным.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]