【发布时间】:2021-04-21 22:26:03
【问题描述】:
我试图创建一个我在Creating an array of structs in C++ 中定义的结构的数组,但我得到一个“没有匹配的函数来调用 Simplex::simplex()”错误。出了什么问题?下面是(我认为是)相关代码。错误出现在 Simplex simplices[numberOfSimplices] 行中。
struct Simplex {
public:
int dimension;
long* vertices;
// Constructor definition
Simplex(int d, long* v) {
dimension = d;
vertices = v;
}
};
void f() {
// Initializing random seed
srand(time(NULL));
long numberOfSimplices = rand() % maxSimplices + 1;
Simplex simplices[numberOfSimplices];
}
【问题讨论】:
-
你需要在你的 Simplex 类中定义一个默认的构造函数,所以是一个没有参数的构造函数。
Simplex(){} -
或者更好:使用 `std::vector´ 而不是数组,然后您可以添加从任何非默认构造函数创建的元素。
-
C++ 标准不支持该可变长度数组,因此还有另一个理由避免使用它并改用
std::vector<Simplex>。