C++ Define a class called Cylinder with two data members: double radius and double height. The definition should include all the set and get functions. The class should also have two member functions. One is for calculating and returning the volume of the cylinder and one is for calculating and returning the surface area of the cylinder. The class Cylinder should also have a constructor. Define a class called Circle with one data member: double radius. The class Circle should have all the set and get function, constructor, and a member function that calculates and returns the area of the circle. Write a complete program that is testing above two classes. Solution #include <iostream> #include <string> using namespace std; class Cylinder { private: double radius; double height; public: // Constructors Cylinder(); Cylinder(double r, double h){ radius = r; height = h; } // Accessors double getRadius(){ return radius; } double getHeight(){ return height; } void setRadius(double r){ radius = r; } void setHeight(double h){ height = h; } double getVolume(){ return 3.14 * radius * radius * height; } double getArea(){ return getVolume() * 2 * 3.14 * radius * radius; } }; class Circle{ private: double radius; public: Circle(); //Constructor Circle(double r){ radius = r; } void setRadius(int r){ if (r >= 0) radius = r; else { cout << \"Invalid radius \"<< endl; exit(EXIT_FAILURE); } } int getRadius(){ return radius; } double getArea() const{ return 3.14 * radius * radius; } }; int main() { Cylinder CylinderOne(10.0, 10.0); cout << \"Cylinder Radius: \" << CylinderOne.getRadius() << endl; cout << \"Cylinder Height: \" << CylinderOne.getHeight() << endl; cout << \"Cylinder area: \" << CylinderOne.getArea() << endl; cout << \"Cylinder volume: \" << CylinderOne.getVolume() << endl; Circle CircleOne(10.0); cout << \"Circle Radius: \" << CircleOne.getRadius() << endl; cout << \"Circle area: \" << CircleOne.getArea() << endl; } .