Объектно-ориентированный язык программирования С++ в примерах. Сивохин А.В. - 71 стр.

UptoLike

Составители: 

virtual point south() { return point(0,0); }
/*-юг; */
virtual point east() { return point(0,0); }
/*-восток; */
virtual point neast() { return point(0,0); }
/*-северо-восток;*/
virtual point seast() { return point(0,0); }
/*-юго-восток; */
virtual void draw() {} /*-нарисовать; */
virtual void move(int,int){} /*-переместить; */
};/*-конец определения понятия фигуры; */
Предполагается,что расположение фигуры задается с помощью
функции move(),a построение фигуры осуществляется функцией
draw().Фигуры можно ориентировать друг относительно друга,
используя понятие точки соприкосновения,указанные в опреде-
лении типа:север,юг и т.д.Каждая конкретная фигура опреде-
ляет свой смысл этих точек,и каждая определяет способ,кото-
рым она рисуется.
Рассмотрим определения только двух фигур - линии и прямо-
угольника.
Линию можно построить либо по двум точкам,либо по точке
и целому.В последнем случае рисуется горизонтальная линия,
длину которой определяет целое.Знак целого указывает,каким
концом является точка - левым или правым.Север определяется
как самая северная точка над центром.Определение линии та-
ково:
class line:public shape
{ point w,e;/*-линия из точки w в точку e; */
public:
point north(){return point((w.x+e.x)/2,
e.y<w.y?w.y:e.y);}
point south(){return point((w.x+e.x)/2,
e.y<w.y?e.y:w.y);}
void move(int a,int b) { w.x+=a;w.y+=b;
e.x+=a;e.y+=b;
}
71
         virtual point south() { return point(0,0); }
                                                  /*-юг;            */
         virtual point east()         { return point(0,0); }
                                                  /*-восток;        */
         virtual point neast() { return point(0,0); }
                                                  /*-северо-восток;*/
         virtual point seast() { return point(0,0); }
                                                  /*-юго-восток;    */
         virtual void draw()          {}          /*-нарисовать;    */
         virtual void move(int,int){}             /*-переместить;   */
        };/*-конец определения понятия фигуры;                      */


Предполагается,что расположение фигуры задается с помощью
функции move(),a построение фигуры осуществляется функцией
draw().Фигуры можно ориентировать друг относительно друга,
используя понятие точки соприкосновения,указанные в опреде-
лении типа:север,юг и т.д.Каждая конкретная фигура опреде-
ляет свой смысл этих точек,и каждая определяет способ,кото-
рым она рисуется.
  Рассмотрим определения только двух фигур - линии и прямо-
угольника.
  Линию можно построить либо по двум точкам,либо по точке
и целому.В последнем случае рисуется горизонтальная линия,
длину которой определяет целое.Знак целого указывает,каким
концом является точка - левым или правым.Север определяется
как самая северная точка над центром.Определение линии та-
ково:


  class line:public shape
        { point w,e;/*-линия из точки w в точку e;                  */
             public:
                       point north(){return point((w.x+e.x)/2,
                                                  e.y