gpt4 book ai didi

c++ - 初始化列表 : cannot convert ‘Participant’ to ‘unsigned int’ in initialization

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

在尝试编译一个存储“参与者”的简单链表时,我遇到了一个非常奇怪的错误。然而,我显然给了它正确的数据,可以确认,因为它在不使用初始化列表时有效(执行赋值运算符“=”)。

下面是相关的代码块:

struct Participant
{
unsigned startNumber;
std::string forename;
std::string surname;
std::string club;
float finishTime;
};

struct ListNode
{
ListNode* next;
Participant data;
};

Participant tempData {list->data}; //error occurs here.

下面是我得到的错误:

List.cpp:15:36: error: cannot convert ‘Participant’ to ‘unsigned int’ in initialization

替换:

Participant tempData {list->data};

与:

Participant tempData = list->data;

编译和运行顺利。

g++ (Debian 4.7.2-5) 4.7.2
CrunchBang (Debian 7 'Wheezy')

关于问题是什么的任何想法?非常感谢任何帮助!

最好的问候,Erik Jansson

最佳答案

您正在尝试执行 Participant 的聚合初始化,其中第一个元素是 unsigned int。自然地,您在该初始化列表中给出的一个参数与该初始化不匹配。

我想说这是一个很好的例子,说明为什么无缘无故地在任何地方切换到 C++11 风格的 {} 初始化都是容易出错的。

有什么问题:

Participant tempData = list->data;

或:

Participant tempData(list->data);

关于c++ - 初始化列表 : cannot convert ‘Participant’ to ‘unsigned int’ in initialization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20552237/

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