Класс twoFigure – две вложенные фигуры – класс fillFigure и figureContur является его элементом
#ifndef twoFigure_h
#define twoFigure_h 1
#include "fillFigure.h"
#include "figureContur.h"
class twoFigure
{
public:
twoFigure();
twoFigure(const twoFigure &right);
~twoFigure();
twoFigure & operator=(const twoFigure &right);
int operator==(const twoFigure &right) const;
int operator!=(const twoFigure &right) const;
void set ();
int draw ();
void get ();
const figureContur& get_perip () const;
const fillFigure& get_in () const;
figureContur perip;
fillFigure in;
protected:
private:
};
inline void twoFigure::set ()
{}
inline void twoFigure::get ()
{}
inline const figureContur& twoFigure::get_perip () const
{ return perip;}
inline const fillFigure& twoFigure::get_in () const
{ return in;}
#endif
Контейнер
Для работы с контейнером используется двусвязный список elem элемент которого задается следующим образом
#ifndef elem_h
#define elem_h 1
template <class X>
class elem
{public:
elem();
elem(const elem< X > &right);
~elem();
elem< X > & operator=(const elem< X > &right);
int operator==(const elem< X > &right) const;
int operator!=(const elem< X > &right) const;
void input ();
void output ();
int K ();
const int& get_key () const;
int key;
protected:
private:
const X& get_my () const;
X my;
private:
};
template <class X>
inline int elem<X>::K ()
{}
template <class X>
inline const X& elem<X>::get_my () const
{ return my;}
template <class X>
inline const int& elem<X>::get_key () const
{ return key;}
#endif
Элемент контейнера elem_containerэлементами контейнеров могут быть содержатся элементы разработанных классов (использован метод шаблонов)
#ifndef elem_container_h
#define elem_container_h 1
template <class X>
struct elem_container
{ elem_container(const elem_container< X > &right);
elem_container ();
~elem_container();
elem_container< X > & operator=(const elem_container< X > &right);
int operator==(const elem_container< X > &right) const;
int operator!=(const elem_container< X > &right) const;
const elem< X >& get_pict () const;
const elem_container * const& get_prev () const;
const elem_container * const& get_next () const;
elem< X > pict;
elem_container *prev;
elem_container *next;
public:
protected:
private:
};
template <class X>
inline elem_container<X>::elem_container ()
{}
template <class X>
inline const elem< X >& elem_container<X>::get_pict () const
{ return pict;}
template <class X>
inline const elem_container * const& elem_container<X>::get_prev () const
{ return prev;}
template <class X>
inline const elem_container * const& elem_container<X>::get_next () const
{ return next;}
#endif
Класс-контейнер container –
#ifndef container_h
#define container_h 1
#include "figure.h"
template <class X>
class container
{
public:
container(const container< X > &right);
container ();
~container();
container< X > & operator=(const container< X > &right);
int operator==(const container< X > &right) const;
int operator!=(const container< X > &right) const;
void add (elem<X> e);
void del (int key);
void print ();
void print_back ();
protected:
private:
const elem_container< X > * const& get_begin () const;
elem_container< X > *begin;
private:
};
template <class X>
inline container<X>::container ()
{}
template <class X>
inline const elem_container< X > * const& container<X>::get_begin () const
{ return begin; }
#endif
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.