Question
In C++. Modify the following so that it uses smart pointers instead of raw pointers. // This program illustrates the use of constructors // and
In C++. Modify the following so that it uses smart pointers instead of raw pointers.
// This program illustrates the use of constructors // and destructors in the allocation and deallocation of memory. #include
class Squares { private: int length; // How long is the sequence int *sq; // Dynamically allocated array public: // Constructor allocates storage for sequence // of squares and creates the sequence Squares(int len) { length = len; sq = new int[length]; for (int k = 0; k < length; k++) { sq[k] = (k+1)*(k+1); } // Trace cout << "Construct an object of size " << length << endl; } // Print the sequence void print() { for (int k = 0; k < length; k++) cout << sq[k] << " "; cout << endl; } // Destructor deallocates storage ~Squares() { delete [ ] sq; // Trace cout << "Destroy object of size " << length << endl; } };
//*********************************************** // Outputs the sequence of squares in a * // Squares object * //*********************************************** void outputSquares(Squares *sqPtr) { cout << "The list of squares is: "; sqPtr->print();
}
int main() { // Main allocates a Squares object Squares *sqPtr = new Squares(3); outputSquares(sqPtr); // Main deallocates the Squares object delete sqPtr;
return 0; }
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