# CPP Logical questions Solution

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.

• 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.
/*• 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.*/

Part C

• Consider the following classes B and D:

Class B

{

Public;

B();

B( int n);

};

B::B()

{

cout << “B::B()\n”;

}

B::B(int n)

{

cout << “B::B(“ << n << “)\n”;

}

Class D : Public B

{

public:

D();

D( int n);

private:

B b;

};

D::D()

{

cout << “D::D()\n”;

}

D::D(int n) : B(n)

{

b = B(-n);

cout << “D::D(“<< n <<”)\n”;

}

What does the following program print?

int main()

{

D d(3);

return 0;

}

• Determine the answer by hand, not by compiling and running the program.

OUTPUT:

Part D

• Implement a base class person. Derive classes Student and Professor from Person. Every Person has will have a name, and birthdate. Every student will have a major, and every professor will have an income. Write the class definitions, the constructors, and the member functions print() for all classes.