在 C++ 中将对象添加到对象数组

Rog*_*ews 5 c++ arrays oop

有一个对象数组,要向其中添加对象,我尝试以下操作:

Shape ShapeList[30];

void addShape(Shape s)
{
  for(int i=0; i<30;i++)
  {
    if(ShapeList[i] != '\0')
        { i++;}
    else
        {
            ShapeList[i]=s;
            numShapes++;
            break;
        }
   }
}
Run Code Online (Sandbox Code Playgroud)

numShapes是一个整型变量,Shape 是类,ShapeList 是对象数组。但是编译器会以这种方式给出错误,!=不允许使用运算符。那么我该如何实现呢?

Cap*_*liC 4

我认为你需要更改你的“容器”声明:

Shape *ShapeList[30];

void addShape(Shape *s)
{
  for(int i=0; i<30;i++)
  {
    if(ShapeList[i])
        { i++;}
    else
        {
            ShapeList[i]=s;
            numShapes++;
            break;
        }
   }
}
Run Code Online (Sandbox Code Playgroud)

并以这种方式调用 addShape:

addShape(new Shape());
Run Code Online (Sandbox Code Playgroud)