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

Can not define an array of structure in C++

本文关键字:定义 结构 数组 C++      更新时间:2023-10-16

我这样定义ball结构:

struct ball
{
 _vector coordinates;
 _vector velocity;
 _vector acceleration;
 int border;
 int color;
 int radius;
 float mass;
 void step();
 void clear();
 void render();
};

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

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

int main(int argc, char** argv)
{
    struct ball balls[NO_BALLS];
.
.
.
}

但是当我想编译代码时,我收到此错误:

调用 'ball::ball()' 的候选对象没有匹配函数: 球::球(康斯特球&)

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