#include "Shape.h" #include "Composite.h" Composite::Composite(Shape* s) : Shape(), ptrShape(s), ptrNext(nullptr) { } void Composite::add(Shape* s) { if (!ptrShape) ptrShape = s; else { if (!ptrNext) ptrNext = new Composite(s); else ptrNext->add(s); } } double Composite::area() const { if (!ptrNext) return ptrShape->area(); else return ptrShape->area() + ptrNext->area(); } void Composite::print() const { if (ptrShape) ptrShape->print(); if (ptrNext) ptrNext->print(); } void Composite::relMove(int x1, int y1) { if (ptrShape) ptrShape->relMove(x1, y1); if (ptrNext) ptrNext->relMove(x1, y1); } void Composite::deleteRec() { if (ptrShape) delete ptrShape; if (ptrNext) ptrNext->deleteRec(); }