// main.cpp #include <iostream> #include "ContactNode.h" int main() { ContactNode* contactList = new ContactNode(); ContactNode* currNode; std::string name, phoneNum; int i = 1; while (i <= 3) { std::cout << "Person " << i++ << std::endl; std::cout << "Enter name:" << std::endl; getline(std::cin, name); std::cout << "Enter phone number:" << std::endl; std::cin >> phoneNum; std::cin.ignore(); contactList->InsertAfter(new ContactNode(name, phoneNum)); std::cout << "You entered: " << name << ", " << phoneNum << std::endl << std::endl; } currNode = contactList; std::cout << "CONTACT LIST" << std::endl; while (contactList != nullptr) { currNode->PrintContactNode(); currNode = currNode->GetNext(); } delete contactList, currNode; } // ContactNode.h #ifndef CONTACTNODE_H #define CONTACTNODE_H #include <string> class ContactNode { public: ContactNode(std::string contactName = "", std::string contactPhoneNum = "") { this->contactName = contactName; this->contactPhoneNum = contactPhoneNum; } ~ContactNode(); ContactNode& operator=(const ContactNode& objToCopy); void InsertAfter(ContactNode*); std::string GetName() const; std::string GetPhoneNumber() const; ContactNode *GetNext() const; void PrintContactNode(); private: std::string contactName; std::string contactPhoneNum; ContactNode* nextNodePtr = nullptr; }; #endif // ContactNode.cpp #include <iostream> #include "ContactNode.h" void ContactNode::InsertAfter(ContactNode* newNode) { ContactNode *tmpNext = this->nextNodePtr; this->nextNodePtr = newNode; newNode->nextNodePtr = tmpNext; } ContactNode::~ContactNode() { ContactNode* curr = nextNodePtr; delete nextNodePtr; while (curr != nullptr) { curr = nextNodePtr; delete nextNodePtr; } } ContactNode& ContactNode::operator=(const ContactNode& objToCopy) { if (this != &objToCopy) { delete nextNodePtr; nextNodePtr = new ContactNode(); *nextNodePtr = *(objToCopy.nextNodePtr); } return *this; } std::string ContactNode::GetName() const { return contactName; } std::string ContactNode::GetPhoneNumber() const { return contactPhoneNum; } ContactNode* ContactNode::GetNext() const{ return this->nextNodePtr; } void ContactNode::PrintContactNode() { std::cout << "Name: " << contactName << "\nPhone Number: " << contactPhoneNum << std::endl; } // Can you fix my code, if you use copy and paste a different code than mine I will give a thumbs down. .