我正在做一个在学校中的任务,我们应该为我们自己的List类创建一个构造函数,它将初始化列表作为参数。初始化列表到构造函数
这就是我希望能够做到:
List ourList {1, 2, 3};
这是我到目前为止有:
List::List(std::initializer_list<int> il)
{
head_ = copy(il.begin(), il.end());
}
List_Node* List::copy(std::initializer_list<int>::iterator begin,
std::initializer_list<int>::iterator end)
{
if(begin == end)
return nullptr;
List_Node* new_list = new List_Node(*begin);
List_Node* node = copy(begin++, end);
new_list->next_ = node;
return new_list;
}
在我的愚见,这应该工作的伟大。但是,当我尝试初始化时(List list {1,2,3};
),我得到一个seg-fault。有人能解释我在这里做错了吗?
你保持了复制相同的元素,并且,你想'++ begin'不'开始++' –
为什么要用复发顺序任务?它只会让这个bug更难以发现。 – luk32