Мне не удается создать динамический массив объектов класса внутри класса на C++. Понятие: предположим, что у нас есть класс A. В этом классе я хочу иметь массив объектов с тем же типом класса (например, массив A *), память которого будет распределяться динамически (мы не знаем, размер этого массива в начале). В main()
Я хочу создать массив из 2 объектов. Первый будет иметь массив с 3 элементами класса A, а второй объект с 6 элементами. Таким образом, каждый объект будет иметь свой собственный массив. Вот мои мысли:Создайте динамический массив объектов класса внутри класса в C++
Основная концепция:
|_|_|_| //Array with 3 elements of class A in object A
| _____ |_|_|_|_|_|_| //Array with 6 elements of class A in object B
| |
|A||B| //Basic array with 2 elements
class A {
A* array;
public:
A(int k) {
//array = new A[k]; //this doesn't work because it calls the default constructor.
int i;
for (i = 0; i < k; i++)
array = new A(k); //This doesn't work either.
cout << "A created." << endl;
};
~A() {
cout << "Destroying A!" << endl;
}
};
int main() {
A *ar[2];
for (i = 0; i < 2; i++) {
if(i == 0) {
ar[i] = new A(3);
} else {
ar[i] = new A(6);
}
}
return 0;
}
Спасибо заранее.
Используйте период 'std :: vector'! –
Благодарим вас за ответ. Векторы - лучшая реализация, но это проект, в котором я не могу их использовать. – Vkt678
'std :: vector' не решит проблему бесконечной рекурсии. Где вы остановите гнездование? –