Я не уверен, как создать массив объектов в своем собственном классе. Например:
class A {
public:
const static int MAX_SIZE = 10;
private:
A arrayOfOBjects[MAX_SIZE];}
Я получаю сообщение об ошибке «неполный тип теперь разрешен». Как мне поступить? Если я объявлю массив объектов из другого класса внутри класса A, он будет работать .. Но как мне создать массив объектов внутри его собственного класса?
использовать указатель или shared_ptr и т. д. и динамически размещать объекты
class A {
public:
const static int MAX_SIZE = 10;
private:
A * arrayOfOBjects[MAX_SIZE];}
С помощью указателей вы можете решить эту проблему
class A {
public:
const static int MAX_SIZE = 10;
void allocate(){
arrayOfOBjects=new A[MAX_SIZE];
}
private:
A *arrayOfOBjects;
};
Вы можете использовать это следующим образом
A a;
a.allocate();
Вы, очевидно, не можете содержать экземпляр объекта в себе. Это заняло бы бесконечное количество памяти 😉
По той же причине вы не можете содержать несколько. Может быть, вы подразумевали массив как статический член, который не добавляет состояния одного экземпляра?