gpt4 book ai didi

c++ - 没有用于初始化“listNode 结构”的匹配构造函数

转载 作者:行者123 更新时间:2023-11-28 01:33:11 27 4
gpt4 key购买 nike

下面的方法 insert 使用了 struct listNode 的构造函数。

void list::insert(size_t i){
if (head == nullptr){
head = new listNode(nullptr,i);
tail = head;
++len;
}
listNode* new_node = new listNode(nullptr,i);
tail->next = new_node;
tail = new_node;
}

listNode的定义

struct listNode{
////@: index into the input buffer
listNode* next;
size_t index;
};

除了这篇文章标题给出的错误,我还得到了注释

 note: candidate constructor (the implicit copy constructor) not
viable: requires 1 argument, but 2 were provided
struct listNode{

这对我来说没有意义。很明显,我在初始化中提供了两个参数,它应该使用参数到实际参数的词典编排绑定(bind)。

最佳答案

head = new listNode(nullptr,i);

是错误的,因为 listNode 没有任何用户定义的构造函数。因此,您不能使用语法 listNode(nullptr, i) 来构造一个。

使用

head = new listNode{nullptr, i}; // This is member-member wise initialization

同样,代替

listNode* new_node = new listNode(nullptr, i);

使用

listNode* new_node = new listNode{nullptr, i};

关于c++ - 没有用于初始化“listNode 结构”的匹配构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50691440/

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