Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Question #1: Consider the following class declaration when answering the parts o

ID: 3670434 • Letter: Q

Question

Question #1: Consider the following class declaration when answering the parts of this question:

class List

{

    public:

        List(); //Default constructor; The list will have an initial size equal to 1

//and count equal to 0. Initialize the values in all the cells of

//the list to 0.

       List(const List &);           //copy constructor

       ~List();                      //destructor

       bool IsEmpty(){return count ==0;};   //returns true if List is empty.

       bool IsFull(){return count == size;}; //returns true is List is full.

      

       void Add(const int &);       //adds an item, inorder, into the List. Items may be shifted if

//necessary. Also if the array is full its size of tripled.

int Subtract(const List & L2); //subtracts the values in L2 from their corresponding values in L

//and stores the results (difference) in the corresponding                                 

//cells in L. The sum of the values stored in L is then returned.

//Assume L and L2 have the same count and capacity.

int Find(const int &);         // returns the location of item in the list; otherwise -1;

friend ostream & operator<<(ostream & out, const List & Org);

//Overload the operator<< with chaining. This function will print

//all the values stored in L.

                                      

     private:

         int *L;                      //dynamic array

       int size;                    //capacity of the dynamic array, L                                                                           

         int count;                   //number of items stored in the dynamic array, L

};

a. Implement the default constructor.

b. Implement the copy constructor.   

c. Implement Add.

d. Implement the code necessary to overload “operator<< as a friend function with chaining.

e. Implement Subtract.

f. What is the output from the following sequence of List operations?

List A, B;

int X:

A.Add(5);

A.Add(40);

A.Add(3);

A.Add(10);

B.Add(15);

B.Add(40);

B.Add(13);

B.Add(0);

X=A.Subtract(B);

A.Add(X);

B.Add(X);

X=B.Subtract(A);

B.Add(X);

cout<

cout<

cout<

g. How many times is the function DoubleSize called when the following statement are executed.

List A, B;                         

int X;

A.Add(5);

A.Add(40);

A.Add(3);

A.Add(10);

Question #2: T/F

1._________The array name of a dynamic array is a constant pointer to the first element in the array.

2._________The copy constructor is always called during the declaration of an object

3._________Friend functions of a class have access to its private members.

4._________The function “new” allows us to allocate memory during compile time.

5._________The function “delete” is used to de-allocate memory allocated by “new.”

6._________Typedef defines a new type for higher program efficiency.

7._________An ADT defines data and the operations that operate on that data.

8._________”this” is an object.

9.__________The open function binds a stream to a filename.

10.__________Overloaded functions can have the same name and return type, but they must have different argument

                           lists.

11.__________An array is accessed randomly because the first element is accessed quicker than the last element in the

                          array.

12.__________Objects can be passed explicitly through *this.

13._________The copy constructor is called during a call-by-value.

14._________The state of a class is the public data members.

15._________ A deep copy is a bit-by-bit copy done by the copy constructor.

Explanation / Answer

a) Default Constructor
Ppublic List()
{

}

b) Copy Constructor
List(const List & p)
{
List &a;
a=p;
}

c) Add method
void Add(const int &k);
{
int & s;
return s+k;
}

---------------------------------------------------------------------------------------------------

Question 2)

T/F
1) True
2) True
3) True
4) False
5) True
6) False
7) True
8) True
9) True
10) True
11) False
12) True
13) False
14) True
15) True