-
생성자 구현
기본 생성자와 SinglyLinkedList를 인자로 받는 복사 생성자를 구현한다.
SinglyLinkedList.cpp
/// <summary> /// 비어있는 SinglyLinkedList를 생성한다. /// </summary> SinglyLinkedList::SinglyLinkedList() : m_count(0), m_head(nullptr) { } /// <summary> /// 다른 SinglyLinkedList가 가지고 있는 노드를 복사해 SinglyLinkedList를 생성한다. /// </summary> /// <param name="other">기준이 될 SinglyLinkedList</param> SinglyLinkedList::SinglyLinkedList(const SinglyLinkedList& other) : m_count(other.m_count) { SinglyLinkedListNode* prevNode = nullptr; SinglyLinkedListNode* curNode = other.m_head; while (curNode != nullptr) { SinglyLinkedListNode newNode; newNode.m_data = curNode->m_data; newNode.m_next = prevNode; prevNode = &newNode; } m_head = prevNode; } /// <summary> /// 메모리 누수를 막기 위해 동적 생성한 노드들을 제거한다. /// </summary> SinglyLinkedList::~SinglyLinkedList() { while (m_head != nullptr) { SinglyLinkedListNode* curNode = m_head; m_head = m_head->m_next; delete curNode; } }