#include #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   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   #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

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

#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

 

Expert Solution
steps

Step by step

Solved in 3 steps with 4 images

Blurred answer
Knowledge Booster
List
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education