C++ C++;将指针值复制到指针数组

C++ C++;将指针值复制到指针数组,c++,pointers,constants,abstract,C++,Pointers,Constants,Abstract,我的代码有问题 我有一个抽象类对象和4个从该对象继承的其他类。 然后我有一些类似于集合类的东西,它将对象存储在指针数组中。我在创建这样的数组时遇到问题,但我发现: Object** array = new Object*[count]; 这解决了我的问题 “我的收藏”中的方法存在如下问题: class Collection { public: void addObjectToArray(const Object* const obj) private: Object **array

我的代码有问题

我有一个抽象类对象和4个从该对象继承的其他类。 然后我有一些类似于集合类的东西,它将对象存储在指针数组中。我在创建这样的数组时遇到问题,但我发现:

Object** array = new Object*[count];
这解决了我的问题

“我的收藏”中的方法存在如下问题:

class Collection
{
public:
   void addObjectToArray(const Object* const obj)
private:
   Object **array;
   size_t size, capacity
}
然后问题来了。主要来说,我可以这样做:假设继承的类中有一个是Ball

Object* ball = new Ball();
这很好,但如果我在集合中调用addObjectToArray方法,它就会崩溃。以下是方法的主体:

void addObjectToArray(const Object* const obj)
    {
       if (size < capacity)
       {
           *array[size] = *obj;  <<<----- problem
           ++size;
       }
       else
       {
           throw std::out_of_range("No more space for objects");
       }
    }
void addObjectToArray(常量对象*常量对象)
{
if(尺寸<容量)
{

*array[size]=*obj;
*array[size]=*obj;
应该是
array[size]=obj;
为什么不使用std::vector?我知道,但obj是const Object*const obj-->,不允许我分配给数组。假设数组是必需的,如果这是您的解决方案,不妨使用
std::vector
array[size] = const_cast<Object*>(obj)