Question
SET-252 C Programming #2 Homework: 7 CResizableArray Part 2. Step 1 Continued with your code from homework 5. I recommend you make a copy of
SET-252 C Programming #2
Homework: 7 CResizableArray Part 2.
Step 1
Continued with your code from homework 5. I recommend you make a copy of the folder/project and keep your homework 5 separate.
Add the following constructors.
Make the Initialize method protected and add two parameters: initial size and default value. Call Initialize from all the the constructors.
Add a destructor and a protected clean up method. Call clean up from the destructor. Delete any allocated memory. Either delete any allocated memory and set all properties to zero or call SetSize( 0 ). Either way make sure you dispose of memory correctly.
Make get size a constant method.
Make get value at a constant method.
Make print a constant method. Make the caption parameter a const char*.
Make sure you test your code thoroughly. For example, insert a value into a size zero array and remove a value from a size zero array. WARNING: do not procedurize any code in main. You may exceed the 1-page limit for main for this assignment.
(continued on the next page)
Step 2 A Mystery
Using your CResizableArray class, create the following main and test subroutines. Run your code. Make sure the application terminates normally. Do NOT click the X on the command window.
// --------------------------------------------------------------------------------
// Prototypes
// --------------------------------------------------------------------------------
void Test1( CResizableArray &clsValues ); // By Reference
void Test2( CResizableArray clsValues ); // By Value
// --------------------------------------------------------------------------------
// Name: main
// Abstract: This is where the program starts.
// --------------------------------------------------------------------------------
void main()
{
CResizableArray clsValues;
// Create the array
clsValues.SetSize(4);
// Populate Array (value, index)
clsValues.SetValueAt( 2, 0 );
clsValues.SetValueAt( 4, 1 );
clsValues.SetValueAt( 6, 2 );
clsValues.SetValueAt( 8, 3 );
// Test 1
Test1( clsValues );
printf( "After Test 1 ------------------------------ " );
clsValues.Print( );
// Test 2
Test2( clsValues );
printf( "After Test 2 ------------------------------ " );
clsValues.Print( );
}
// --------------------------------------------------------------------------------
// Name: Test1
// Abstract: Pass by reference
// --------------------------------------------------------------------------------
void Test1( CResizableArray &clsValues )
{
printf( "Test 1 ------------------------------ " );
clsValues.Print( );
}
// --------------------------------------------------------------------------------
// Name: Test2
// Abstract: Pass by value
// --------------------------------------------------------------------------------
void Test2( CResizableArray clsValues )
{
printf( "Test 2 ------------------------------ " );
clsValues.Print( );
}
(continued on the next page)
Step 3 What is happen?
Explain in comments, at the top of your program, what is happening. Your answer is worth 31% of the grade for this assignment.
Propose one or more possible solutions. Making variables global is a hack not a solution. Always passing by reference is a hack not a solution.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started