0. Given the following statements, select which function(s) get used. Both Base and Derived have virtual functions, virtual destructors, copy constructors and operator =. Also, unless otherwise specified default values are used.
A. Base* pderived = new Derived;
a. Base constructor
b. Derived constructor
c. Base copy constructor
d. Base operator =
B. Base base = *pderived; // from part A
a. Base default constructor
b. Base copy constructor
c. Derived default constructor
d. Derived copy constructor
C. base = *pderived; // from part A & B
a. Base copy constructor
b. Derived copy constructor
c. Base operator =
d. Derived operator =
D. [login to view URL](); // from part B, function is non-virtual
a. Base function
b. Derived function
E. pderived->function(); // from part A, function is non-virtual
a. Base function
b. Derived function
F. [login to view URL](); // from part B, function is virtual
a. Base vfunction
b. Derived vfunction
G. pderived->vfunction(); // from part A, function is virtual
a. Base vfunction
b. Derived vfunction
H. delete pderived; // from part A
a. Base destructor
b. Derived destructor
1. Using the derived passenger classes from lab4, write a polymorphic function that can take any of the three types of passengers, and access any of the virtual functions.
2. Show how to have a base class copy constructor get called from a derived class copy constructor:
3. Convert this class to be a generic:
class triple
{
int first;
double second;
string third;
public:
triple(int f, double s, string t) : first(f), second(s), third(t): { }
int getfirst() { return first; }
double getsecond() { return second; }
string getthird() { return third; }
void setfirst(int f) { first = f; }
void setsecond(double s) { second = s; }
void setthird(string t) { third = t; }
};
4. Describe, in a short paragraph, the difference between inheritance by value and inheritance by reference.