to Node"-6ren"> to Node"-我正在尝试创建结构数组 node .有人知道如何在类 hashing 中声明构造函数吗?创建一个 node 的数组.在我的代码中有一个错误提示无法转换 至 Node : template class-6ren">
gpt4 book ai didi

c++ - 如何修复错误 "could not convert to Node"

转载 作者:搜寻专家 更新时间:2023-10-31 01:35:31 26 4
gpt4 key购买 nike

我正在尝试创建结构数组 node .有人知道如何在类 hashing 中声明构造函数吗?创建一个 node 的数组.在我的代码中有一个错误提示无法转换 <brace enclosed initializer list>Node :

template <typename E, size_t N=7>
class Hashing : public Container<E> {
struct Node {
E value;
Node *next;
Node (E value) : value (value), next(nullptr) {}
E getValue() { return value; }
void putValue(E value) { this->value = value; }
Node *getNext() { return next; }
};

size_t nmax;
size_t n;
Node * values;
Node field[N] = {};

public:
Hashing(): n(N) {};

最佳答案

问题是您的 Node 类不是默认可构造的。当你做的时候

Node field[N] = { };

它尝试默认构造数组中的每个元素。由于您有一个用户定义的构造函数,因此抑制了编译器提供的默认构造函数。如果你添加一个喜欢

Node(): value(0), next(nullptr) {}

代码将编译。

关于c++ - 如何修复错误 "could not convert <brace enclose initilizer list> to Node",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37253383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com