friend ostream &operator<<( ostream &output, Figure &f );
friend string &operator>>( string &line, Figure &f );
};
class Circle : public Figure {
public:
Circle();
Circle(float xCenter, float yCenter, float angle, float scaleFactor);
void show() override;
void hide() override;
void unHide() override;
void rotateBy(float angle) override;
void moveBy(float x, float y) override;
void input() override;
};
class Elipse : public Figure {
public:
Elipse();
Elipse(float xCenter, float yCenter, float angle, float scaleFactor);
void show() override;
void hide() override;
void unHide() override;
void rotateBy(float angle) override;
void moveBy(float x, float y) override;
void input() override;
};
class Programm {
private:
typedef deque<Figure*> MyCollection;
MyCollection* collection;
public:
void init();
void run();
void done();
void createCircle();
void createEllipse();
void showAllElements();
void showAllElements(deque<Figure*> *elements);
void deleteAllElements();
Figure* createCircleManually();
Figure* createEllipseManually();
int writeFigures(deque <Figure*> &figures);
int readFigures(deque <Figure*> &figures);
void save();
void load();
void sort();
void find();
void requestsMenu();
};
AdditionalSource.cpp:
#include "Header.h"