C++ 初始化列表:无法转换‘;参与者’;至‘;无符号整数’;在初始化中
当我试图编译一个存储“参与者”的简单链表时,我遇到了一个非常奇怪的错误。但是,我很清楚地给了它正确的数据,这是可以确认的,因为它在不使用初始化列表时工作(执行赋值运算符“=”) 以下是相关代码块:C++ 初始化列表:无法转换‘;参与者’;至‘;无符号整数’;在初始化中,c++,gcc,c++11,linked-list,initializer-list,C++,Gcc,C++11,Linked List,Initializer List,当我试图编译一个存储“参与者”的简单链表时,我遇到了一个非常奇怪的错误。但是,我很清楚地给了它正确的数据,这是可以确认的,因为它在不使用初始化列表时工作(执行赋值运算符“=”) 以下是相关代码块: struct Participant { unsigned startNumber; std::string forename; std::string surname; std::string club; float finishTime; }; struc
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};
与:
编译和运行平稳
g++ (Debian 4.7.2-5) 4.7.2
CrunchBang (Debian 7 'Wheezy')
你知道问题出在哪里吗?
非常感谢您的帮助
致以最诚挚的问候,Erik Jansson您正在尝试对
参与者执行聚合初始化,其中第一个元素是无符号int
。当然,您在初始化列表中给出的一个参数与该初始化不匹配
我想说,这是一个很好的例子,说明了为什么毫无理由地切换到C++11风格的{}
初始化是很容易出错的
问题是:
Participant tempData = list->data;
或:
他们没有什么问题:D我目前正在学习C++(大学),我们一直被教导要经常使用它们。我猜他们错了!非常感谢!很高兴听说一所大学是最先进的,但是,是的,他们是。:)
Participant tempData = list->data;
Participant tempData(list->data);