无法在C++中定义结构数组

Moh*_*adi 0 c++ arrays structure

ball用这种方式定义了结构:

struct ball
{
 _vector coordinates;
 _vector velocity;
 _vector acceleration;

 int border;
 int color;
 int radius;

 float mass;

 void step();
 void clear();
 void render();
};
Run Code Online (Sandbox Code Playgroud)

(数据类型_vector在之前定义,它代表数学中的向量)

在main函数中我想定义一个balls 数组,所以我写了这段代码:

int main(int argc, char** argv)
{
    struct ball balls[NO_BALLS];
.
.
.
}
Run Code Online (Sandbox Code Playgroud)

但是当我想编译代码时,我得到了这个错误:

调用`ball :: ball()'候选人没有匹配函数:ball :: ball(const ball&)

Jos*_*eld 9

如果您定义了复制构造函数ball::ball(const ball&)(您在代码中实际注释掉了),则不会有编译器生成的默认默认构造函数.需要有一个默认构造函数才能使数组定义起作用(因为它默认初始化每个元素).所以只需提供一个默认构造函数:ball:ball() { }.您可能希望在此构造函数中初始化成员变量.