#include "Polygon.h" #include "Point.h" Polygon::Polygon(void) { // m_points = new std::list(); m_id++; id=m_id; std::cout << "constructeur id = " << id << std::endl; } Polygon::Polygon(const std::list &l) { m_id++; id=m_id; std::cout << "constructeur id = " << id << std::endl; // m_points = new std::list(); for(std::list::const_iterator it = l.begin(); it != l.end(); it++) m_points.push_back(*it); } Polygon::~Polygon(void) { std::cout << "destructeur id = " << id << std::endl; id = 75; system("PAUSE"); /* while(!m_points.empty()){ delete m_points.front(); m_points.pop_front(); } delete m_points;*/ } Polygon& Polygon::operator<<(const Point &p) { m_points.push_back(p); return *this; } Polygon& Polygon::operator<<(std::list &l) { // std::list::iterator it; for(std::list::iterator it = l.begin(); it != l.end(); it++) m_points.push_back(*it); return *this; } std::ostream& operator<<(std::ostream &os, const Polygon &p) { for(std::list::const_iterator it = p.m_points.begin(); it != p.m_points.end(); it++) std::cout << *it; return os; } Polygon& Polygon::operator=(const Polygon &p) { for(std::list::const_iterator it = p.m_points.begin(); it != p.m_points.end(); it++) m_points.push_back(*it); return *this; } const Polygon operator-(const Polygon &pol, const Point &p) { Polygon pol2; for(std::list::const_iterator it = pol.m_points.begin(); it != pol.m_points.end(); it++) pol2 << *it-p; return pol2; } int Polygon::m_id=0;