Question: Convert the class that you wrote, to template. Test the template with dynamic arrays of integers and dynamic array of strings. *************** ---------------------------------------------------------------------- this is

Convert the class that you wrote, to template.

Test the template with dynamic arrays of integers and dynamic array of strings.

***************

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

this is my code that needs to be covert to template.

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

#include

#include

using namespace std;

class DynamicStringArray{

private:

string *dynamicArray;

int size;

public:

// cstrt

DynamicStringArray()

{

dynamicArray = NULL;

size = 0;

}

DynamicStringArray(const DynamicStringArray &d)

{

size = d.size;

dynamicArray = new string[size];

for(int i = 0; i

{

dynamicArray[i] = d.dynamicArray[i];

}

}

DynamicStringArray& operator =(const DynamicStringArray& rightSide)

{

if (dynamicArray != NULL)

{

delete[] dynamicArray;

}

if (rightSide.size == 0)

{

size = 0;

dynamicArray = NULL;

}

else

{

size = rightSide.size;

dynamicArray = new string[size];

for (int i = 0; i < size; i++)

{

dynamicArray[i] = rightSide.dynamicArray[i];

}

}

return *this;

}

~DynamicStringArray()

{

delete [] dynamicArray;

}

// fc

void addEntry(string input)

{

string *newArr = new string[size +1];

if(size == 0)

{

newArr[0] = input;

}

else

{

int i = 0;

for(i; i

{

newArr[i] = dynamicArray[i];

}

newArr[i] = input;

}

delete [] dynamicArray;

dynamicArray = newArr;

size++;

}

int getSize(){ return size; }

bool deleteEntry(string input)

{

bool found = false;

int index;

for(int i=0; i

{

if(dynamicArray[i] == input)

{

found = true;

index = i;

break;

}

}

if(!found)

{

return found;

}

string *newArr = new string[size -1];

int j = 0;

for(int i = 0; i

{

if(i == index)

{

continue;

}

newArr[j] = dynamicArray[i];

j++;

}

delete [] dynamicArray;

dynamicArray = newArr;

size--;

}

string getEntry(int index)

{

if( index < 0 || index > size -1)

{

return NULL;

}

return dynamicArray[index];

}

};

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

Your assignment will be tested with the following main function:

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

int main() { DynamicArray names;

// List of names names.addEntry("Frank"); names.addEntry("Wiggum"); names.addEntry("Nahasapeemapetilon"); names.addEntry("Quimby"); names.addEntry("Flanders");

// Output list cout << "List of names:" << endl; for (int i = 0; i < names.getSize(); i++) cout << names.getEntry(i) << endl; cout << endl;

// Add and remove some names names.addEntry("Spuckler"); cout << "After adding a name:" << endl; for (int i = 0; i < names.getSize(); i++) cout << names.getEntry(i) << endl; cout << endl;

names.deleteEntry("Nahasapeemapetilon"); cout << "After removing a name:" << endl; for (int i = 0; i < names.getSize(); i++) cout << names.getEntry(i) << endl; cout << endl;

names.deleteEntry("Skinner"); cout << "After removing a name that isn't on the list:" << endl; for (int i = 0; i < names.getSize(); i++) cout << names.getEntry(i) << endl; cout << endl;

names.addEntry("Muntz"); cout << "After adding another name:" << endl; for (int i = 0; i < names.getSize(); i++) cout << names.getEntry(i) << endl; cout << endl;

// Remove all of the names by repeatedly deleting the last one while (names.getSize() > 0) { names.deleteEntry(names.getEntry(names.getSize() - 1)); }

cout << "After removing all of the names:" << endl; for (int i = 0; i < names.getSize(); i++) cout << names.getEntry(i) << endl; cout << endl;

names.addEntry("Olivia"); cout << "After adding a name:" << endl; for (int i = 0; i < names.getSize(); i++) cout << names.getEntry(i) << endl; cout << endl;

cout << "Testing copy constructor" << endl; DynamicArray names2(names); // Remove Olivia from names names.deleteEntry("Olivia"); cout << "Copied names:" << endl; for (int i = 0; i < names2.getSize(); i++) cout << names2.getEntry(i) << endl; cout << endl;

cout << "Testing assignment" << endl; DynamicArray names3 = names2; // Remove Olivia from names2 names2.deleteEntry("Olivia"); cout << "Copied names:" << endl; for (int i = 0; i < names3.getSize(); i++) cout << names3.getEntry(i) << endl; cout << endl;

cout << "Testing dynamic array of ints" << endl; DynamicArray nums; nums.addEntry(10); nums.addEntry(20); nums.addEntry(30); for (int i = 0; i < nums.getSize(); i++) cout << nums.getEntry(i) << endl; cout << endl;

cout << "Enter a character to exit." << endl; char wait; cin >> wait; return 0; }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!