Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- const double pi = 3.14159265;
- class Figure {
- public:
- virtual double area() = 0;
- virtual double perimeter() = 0;
- };
- class Rectangle: public Figure {
- protected:
- int w;
- int h;
- public:
- Rectangle(int w, int h)
- {
- this->w = w;
- this->h = h;
- }
- int width()
- {
- return w;
- }
- int height()
- {
- return h;
- }
- virtual double area()
- {
- return w * h;
- }
- virtual double perimeter()
- {
- return 2 * (w + h);
- }
- friend istream& operator>> (istream&, Rectangle&);
- friend ostream& operator<< (ostream&, const Rectangle&);
- };
- istream& operator>> (istream& in, Rectangle& rect)
- {
- in >> rect;
- return in;
- }
- ostream& operator<< (ostream& out, const Rectangle& rect)
- {
- out << ▭
- return out;
- }
- double array_area(Figure** array, int n)
- {
- double area = 0;
- for (size_t i = 0; i < n; i++)
- {
- area += array[i]->area();
- }
- return area;
- }
- double array_perimeter(Figure** array, int n)
- {
- double perimeter = 0;
- for (size_t i = 0; i < n; i++)
- {
- perimeter += array[i]->perimeter();
- }
- return perimeter;
- }
- class Circle: public Figure {
- protected:
- int r;
- public:
- Circle(int r)
- {
- this->r = r;
- }
- int radius()
- {
- return r;
- }
- virtual double area()
- {
- return pi * r*r;
- }
- virtual double perimeter()
- {
- return 2 * pi * r;
- }
- friend istream& operator>> (istream&, Circle&);
- friend ostream& operator<< (ostream&, const Circle&);
- };
- istream& operator>> (istream& in, Circle& circle)
- {
- in >> circle;
- return in;
- }
- ostream& operator<< (ostream& out, const Circle& circle)
- {
- out << circle;
- return out;
- }
- int main()
- {
- int n;
- string command = "";
- Figure* figures = new Figure[n];
- cin >> n;
- for (size_t i = 0; i < n; i++)
- {
- cin >> command;
- if (command == "Rectangle")
- {
- }
- else if (command == "Circle")
- {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment