Question
main.cpp canvas.h #ifndef CANVAS_H #define CANVAS_H #include using namespace std; // In this homework, you'll manipulate ASCII art images // consisting of a rectangular grid
main.cpp
canvas.h
#ifndef CANVAS_H #define CANVAS_H
#include
using namespace std;
// In this homework, you'll manipulate ASCII art images // consisting of a rectangular grid of chararacter pixels. class Canvas { public: // Allocates a canvas of the given width and height 5 that // consists entirely of ' ' (space) chars. If the width is 0, // the canvas is empty (pointer is NULL and _width is 0) Canvas(int width);
// Allocates a canvas with width 5 and height 5 that looks like: // // ### #### #### #### // # # # # # # # // ##### or #### or # or # # // # # # # # # # // # # #### #### #### // // depending upon which character ('A', 'B', 'C', or 'D') is // given as a parameter. If some other character is given, // allocates a canvas of ' ' chars with width 5 and height 5. Canvas(char x);
// Returns the width of the canvas. int width();
// Returns the entire canvas as a single string, consisting of each row // of the canvas, followed by the newline character (' '). // If the canvas is empty, returns an empty string. string to_string(); // Replaces every instance in the canvas of old_char with new_char. // For instance, if old_char is '#' and new char is '@', then: // // ### @@@ // # # @ @ // ##### becomes @@@@@ // # # @ @ // # # @ @ // void replace(char old_char, char new_char);
// Destructor. Deallocates all of the memory allocated by the canvas. ~Canvas();
private: // A canvas is represented as a 2D char array, i.e. // an array of pointers to char (sub)arrays. // Each subarray corresponds to a COLUMN of the image. char** C; int _width; };
#endif
In this homework, you'll implement a class that represents "ASCII art" images and operations on them, represented as two-dimensional char arrays allocated on the heap (using the new operator). The following files are given to you: 1. A +++ header file (canvas.h) declaring the Canvas class. 2. A C++ source file (main.cpp) containing a main() function with tests. Create a new C++ source file named canvas.cpp that implements the class declared in canvas.h so that canvas.cpp and the provided files compile into a program that runs with no failed tests. Ne issues lexumd G\#ifndef CANWA5_H Hadefine CARWSS_H Hinclude strings using namespace std; 7// In this homework, you'll nanipulate A.5KII art irlages ff carisisting of a rectarigular grid of chararacter pixels - -class Canvas \{ public: If allocales a canvas of Lhe given widlh and height 5 Lhal lf consists entirely of " (space) chars. If the width is , ff Lhe canvas is emply (poirler is MULL arid _midth is B) Canvas [int width); 7 l // Allocates a canvas with width 5 and height 5 that looks like: ff If \# \# \# \# \# H ll \#\#\#\#\# or \#\#\#\# or \# or \# \# II \# \# \# \# \# \# Il \# \# \#\#\#\# \#\#\#\# \#\#\# ff f/ depending upon which character ['A', ' B,C ', or ' D ') is If glven as a paraneter. If some other character is given, f/ allocates a canvas of ' ' chars with width 5 and height 5. [anvasi[char x]; If Returns the width of the canvas. int width( ) ll Returns the entire canvas as a single string, consisting of each row Na isedas tand
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