Как мне объявить массив объектов в своем собственном классе?

Я не уверен, как создать массив объектов в своем собственном классе. Например:

class A {
public:
const static int MAX_SIZE = 10;

private:
A arrayOfOBjects[MAX_SIZE];}

Я получаю сообщение об ошибке «неполный тип теперь разрешен». Как мне поступить? Если я объявлю массив объектов из другого класса внутри класса A, он будет работать .. Но как мне создать массив объектов внутри его собственного класса?

0

Решение

использовать указатель или shared_ptr и т. д. и динамически размещать объекты

class A {
public:
const static int MAX_SIZE = 10;

private:
A * arrayOfOBjects[MAX_SIZE];}
0

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

С помощью указателей вы можете решить эту проблему

class A {
public:
const static int MAX_SIZE = 10;
void allocate(){
arrayOfOBjects=new A[MAX_SIZE];
}
private:
A *arrayOfOBjects;
};

Вы можете использовать это следующим образом

A a;
a.allocate();
0

Вы, очевидно, не можете содержать экземпляр объекта в себе. Это заняло бы бесконечное количество памяти 😉

По той же причине вы не можете содержать несколько. Может быть, вы подразумевали массив как статический член, который не добавляет состояния одного экземпляра?

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