[SOLVED] CS-1410-Project 8- Dynamic Array Template

35.00 $

Category:
Click Category Button to View Your Next Assignment | Homework

You will receive the following solution file(s) instantly after successful payment:

zip file icon CS-1410-Project-8-ydlerg.zip (59.6 KB)
Assignment Instructions Updated Recently? Submit Below and we will provide new Solution!
Submit New Instructions
🔒 Securely Powered by:
Secure Checkout
5/5 - (2 votes)

13.4 Programming Project #8:
Dynamic Array Template
Background
At this point you should have written code for a complete vector of integers class (The
Dynamic Array project). We will add a few additional functions to DynArray, and then
make it a class template so it can store objects of any type.
Objective
Successfully implement a generic class using templates in C++.
Step 1
Starting with a copy of your DynArray class, add the following member functions:
1. int back()
This function returns the value of the last integer in the used portion of the
vector, but it does not remove it. Throw a runtime_error if the vector is
empty. This function returns by reference.
2. int front()
This function returns the value at the beginning the vector, but it does not
remove it. Throw a runtime_error if the vector is empty. This function returns
by reference.
3. DynArray(const DynArray&)
This copy constructor does a deep copy of the object’s contents.
4. DynArray& operator=(const DynArray&)
This assignment operator does a deep copy of the object’s contents. Don’t
forget to delete the old data.
5. T& operator[ ](int n);
This operator modifies the array operator so that is it compatible with a vector
at( ) function in avoiding the fact that an array has no over bounds error
reporting.
After you have added these functions to your new DynArray class, write a driver that
tests these new functions. Once you are satisfied that your DynArray class works,
move on to step two. You won’t turn in your test code for this step.
Step 2
Make your DynArray class generic by making it a template. Your new class template
will have the type of the items it will hold as the template parameter:
template<typename T>
class DynArray {
… your content here …
};
You will need to move all of your code into a single dynarray.h file, since template code
must be defined that way. You won’t have a dynarray.cpp. Place the class template
definition first, followed by the member function implementations (alternatively, you
could define your member function bodies inside the class template if you like). You
will need to add the usual template preamble before each function defined outside of
the class template definition, for example:
template<typename T>
int DynArray<T>::capacity() const {
return cap; // Or whatever you named your capacity data
member
}
Now go through your code and replace all occurrences of int with T wherever the
element type is referred to. Don’t just blindly replace all occurrences of int. For
example, capacity still returns an int, since it is a number. push_back, however,
will look like this:
template<typename T>
void DynArray<T>::push_back(const T& t) {
…your code here…
}
Note: Wherever DynArray appears in the non-template version (except for the class
name and the names of constructors), it must now appear as DynArray<T>.
The driver for this project is provided for you.
The expected output follows:
grow
grow
grow
copy
[A, B, C, D, E, F, G, H, I, J, K, …, Z]
assign
[A, B, C, D, E, F, G, H, I, J, K, …, Z]
{B, C, D, E, F, G, H, I, J, K}
Note that you must insert trace statements for “grow” and “assign”. This verifies that
your code is functioning properly.

  • CS-1410-Project-8-ydlerg.zip