Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //plik naglowkowy
- #ifndef _ukladwspolrzednych_h__
- #define _ukladwspolrzednych_h__
- #include "figura.h"
- #include <vector>
- class UkladWspolrzednych
- {
- public:
- typedef std::vector<Figure> ZbiorFigur;
- typedef std::vector<Figure>::iterator IteratorFigur;
- UkladWspolrzednych();
- UkladWspolrzednych(const UkladWspolrzednych& uklad);
- UkladWspolrzednych& operator=(const UkladWspolrzednych& uklad);
- virtual void add(const Figure& figure);
- virtual void print(std::ostream& stream) const; //a to powinno byc zrobione jako operator,a nie funkcja
- void operator+(const Figure& figure) { //ten operator wg polecenie to powinno byc +=, a nie + - wystarczy zmienic i bedzie dzialac :)
- this->add(figure);
- }
- std::ostream& operator<<(std::ostream& stream);
- private:
- ZbiorFigur m_figure;
- };
- #endif /* _ukladwspolrzednych_h__ */
- //plik cpp
- #include "ukladwspolrzednych.h"
- UkladWspolrzednych::UkladWspolrzednych()
- {
- m_figure.clear();
- }
- UkladWspolrzednych::UkladWspolrzednych( const UkladWspolrzednych& uklad )
- {
- *this = uklad;
- }
- UkladWspolrzednych& UkladWspolrzednych::operator=( const UkladWspolrzednych& uklad )
- {
- m_figure = uklad.m_figure;
- return *this;
- }
- void UkladWspolrzednych::add(const Figure& figure)
- {
- m_figure.push_back(figure);
- }
- void UkladWspolrzednych::print( std::ostream& stream ) const
- {
- for (ConstIteratorFigur i = m_figure.begin(), end = m_figure.end() ; i != end ; ++i) //tu chodzi o to, ze robi dwa iteratory
- //jeden ustawiamy na cpzoatek wektora, drugi na koniec, i po prostu jedziemy nim po wektorze-dziala to tak sam, jakbys biegl zwyklym wskaznikiem
- //po tablicy, tylko ze tu wykorzystujemy specjalny typ do tego
- {
- i->print(stream);
- stream << std::endl;
- }
- }
- std::ostream& operator<<( std::ostream& stream, const UkladWspolrzednych& uklad )
- {
- uklad.print(stream);
- return stream;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement