Code:#ifndef SHAPE_H #define SHAPE_H #include <string.h> using std::string; using namespace std; class Shape { public: Shape(const string &color); //constructor ~Shape(); string getColor()const; //returns objects color value virtual double area()const = 0;// a const pure virtual member function that computes and returns the object's area virtual string toString() const = 0; //a const pure virtual member function that returns the shape's description private: string s_color; }; #endif //SHAPE_H #include <string> using std::string; #include <sstream> #include <iostream> using std::cout; using std::cin; using std::endl; #include "square.h" //ctor square::square(const string &color, double length) :Shape(color) { length = len; }//end ctor //dtor double square::getLength() { return len; } //Function to calculate are double square::area()const { return len * len; }//end function to calculate area //Function to returns square's description string square::toString()const { ostringstream os; os << getColor() <<"square with side length of " << len << " " << "and area of " << area(); return os.str(); }//end of function to return's square description #include <string> using std::string; #include <sstream> #include <iostream> using std::cout; using std::cin; using std::endl; #include "rectangle.h" //ctor rectangle::rectangle(const string &color, double width, double length) :Shape(color) { length = len; wid = width; }//end ctor //dtor double rectangle::getWidth() { return wid; } double rectangle::getLength() { return len; } //function to calculate rectangle area double rectangle::area() const { return len * wid; }//end function to get rectangle area //returns rectangle's description string rectangle::toString()const { ostringstream os; os << getColor() <<"rectangle with length of " << len << " and width of " << wid << " and area of " << area(); return os.str(); }//end function to return rectangle's description #include <string> using std::string; #include <sstream> #include <iostream> using std::cout; using std::cin; using std::endl; #include "circle.h" //ctor circle::circle(const string& color, double radius) :Shape(color) { radius = rad; }//end ctor double circle::getRadius() { return rad; } //function to calculate circle area double circle::area()const { return rad * rad * 3.14; }//end function to get circle area //returns circle description string circle::toString()const { ostringstream os; os << getColor() <<" circle with radius of " << rad << " and area of " << area(); return os.str(); }//end function to return circle description #include <string> using std::string; #include <iostream> using std::cout; using std::cin; using std::endl; #include "circle.h" #include "rectangle.h" #include "square.h" Shape* getShape() { int i; string shapetype; char choice; Shape* myShape[6]; cout << "Creating a Shape "; cout << "============================================== "<<endl; cout << " 1: Create a circle "<<endl; cout << " 2: Create a rectangle "<<endl; cout << " 3: Create a square "<<endl; cout << " 4: Done "<<endl; cout << "============================================== "<<endl; for ( i = 0; i < 6; ++i){ cout << "Enter number for shapetype" <<endl; switch(choice){ case '1': cout << "\nEnter the shape's color (or 'done')..."; cin >> s_color ; cout << "\nEnter shape type..." ; cin >> shapetype; cout << "\nEnter radius.... "; cin >> radius; myShape[i] = new circle(color, radius); break; case '2': cout << "\nEnter the shape's color (or 'done')..."; cin >> color; cout << "\nEnter shape type..."; cin >> shapetype; cout << "\nEnter the length and width.... "; cin >> width >> length; myShape[i] = new rectangle(color, length, width); break; case '3': cout << "\nEnter the shape's color (or 'done')..."; cin >> color; cout <<"\nEnter shape type..."; cin >> shapetype; cout << "\nEnter the length of a side..."; cin >> length; myShape[i] = new square(color, length); break; case '4': cout <<"\nEnter the shape's color (or 'done')...."; cout << "done"<< endl;} } return myShape[i]; }
For some reason when i try to call the getShape function in main, it doesn't work. the toString function doesnt work neither.



LinkBack URL
About LinkBacks



