Part A
· Locate the errors in the following code. You will notice, not every line will contain a mistake. Pay close attention to the line preceding it. Look out for uninitialized pointers, NULL pointers, pointers to deleted objects, and confusing pointers with objects.
1 int* p = new int;
2 p = 5;
3 *p = *p + 5;
4 Employee e1 = new Employee("Hacker, Harry", 34000);
5 Employee e2;
6 e2->set_salary(38000);
7 delete e2;
8 Time* pnow = new time ();
9 Time* t1 = new Time(2, 0, 0);
10 cout << t1->seconds_from(pnow);
11 delete*t1;
12 cout << t1->get_seconds();
13 Employee* e3 = new Employee("Lin, Lisa", 68000);
14 cout << e3.get_salary();
15 Time* t2 = new Time(1, 25, 0);
16 cout << *t2.get_minutes();
17 delete t2;
Part B
· Implement a class person with the following fields:
The name
A pointer to the persons best friend
A popularity counter that indicates how many people have this person as their best friend
· Write a program that reads in a list of names, allocates a new Peron for every one of them, and places them in a vector. Next, request the name of each best friend for every Person objects. Find the object matching the friend's name, and call a set_best_friend member function to update the pointer and counter. Lastly, print out every Person objects. Labeling the name, best friend, and popularity counter for all.
#include
#include
#include
#include
using namespace std;
class Person
{
public:
Person(string name = "N/A", int popularity = 0, Person* bfriend = NULL);
string getName();
void setName(string name);
int getPopularity();
void setPopularity(int pop);
string getBestFriend();
void setBestFriend(Person* bfriend);
private:
string name; //The name
Person* bestfriend; //A pointer to the persons best friend
int popularity; //A popularity counter that indicates how many people have this person as their best friend
};
Person::Person(string fname, int fpopularity, Person* bfriend)
{
name = fname;
popularity = fpopularity;
bestfriend = bfriend;
}
string Person::getName()
{
return name;
}
void Person::setName(string fname)
{
name = fname;
}
int Person::getPopularity()
{
return popularity;
}
void Person::setPopularity(int pop)
{
popularity = pop;
}
string Person::getBestFriend()
{
return bestfriend->getName();
}
void Person::setBestFriend(Person* bfriend)
{
bestfriend = bfriend;
}
/*• Write a program that reads in a list of names, allocates a new Peron for every one of them,and places them in a vector. Next, request the name of each best friend for everyPerson objects. Find the object matching the friend's name, and call a set_best_friend memberfunction to update the pointer and counter. Lastly, print out every Person objects.Labeling the name, best friend, and popularity counter for all.*/