List::List(const List &x)
: m_size(x.m_size)
, m_dummy(new Node)
{
link(m_dummy, m_dummy);
const Node *ptr = x.m_dummy->m_next;
for (int i = 0; i < m_size; ++i) {
append(m_dummy, new Node(ptr->m_value)); // x のノードと同じ値を持つノードを生成し、末尾に追加
ptr = ptr->m_next; // 参照するノードへのポインタをひとつ前に進める
}
}
解説:
前: | 次: