Объектно-ориентированное программирование на языке С++. Лясин Д.Н - 76 стр.

UptoLike

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

76
Shape *mas[10];
for(int i=0;i<10;i++)
{mas[i++]=new Circle(random(600),random(400),random(100)+10);
mas[i]=new Rectangle(random(600),random(400),random(100)+10,random(50)+10);
}
for(i=0;i<10;i++)
mas[i]->show();
getch();
for(int j=0;j<3;j++)
{for(i=0;i<10;i++)
mas[i]->move(random(100)-50,random(100)-50);
getch();
}
closegraph();
}
else { cout<<"error";getch();}
}
В программе из листинга 31 определены классы Circle и Rectangle, описы-
вающие графические фигуры, окружность и прямоугольник соответственно. Сов-
падающие свойства этих геометрических фигур вынесены в базовый класс Shape.
Этими свойствами являютсябазовая точка фигуры base, определяющая местопо-
ложение фигуры на экране, цвет фигуры color, метод move, перемещающий фигу-
ру по экрану. Необходимо обратить внимание на реализацию метода
move. Для
того чтобы переместить фигуру, ее сначала отображаем цветом фона, изменяем
координаты базовой точки фигуры, а затем отображаем цветом фигуры. Такая
процедура перемещения подходит для работы с любой фигурой -–и окружностью,
и прямоугольником, поэтому метод move наследуется классами Circle и Rectangle.
Для отображения фигуры метод move использует метод show. В классе Shape ме-
тод move просто отображает
на экране базовую точку фигуры (вообще то, метод
move в классе Shape не должен ничего отображать, поскольку этот класс с точки
зрения предметной области является абстракцией, служащей основой для созда-
ния производных классов, но об абстрактных классах речь пойдет в следующей
главе). В классах Circle и Rectangle метод show отображает соответствующую
геометрическую фигуру. Для правильной
работы программы метод show должен
быть объявлен виртуальным, поскольку вызов метода move для объектов классов
           Shape *mas[10];
           for(int i=0;i<10;i++)
            {mas[i++]=new Circle(random(600),random(400),random(100)+10);
             mas[i]=new Rectangle(random(600),random(400),random(100)+10,random(50)+10);
            }
            for(i=0;i<10;i++)
             mas[i]->show();
             getch();
            for(int j=0;j<3;j++)
            {for(i=0;i<10;i++)
              mas[i]->move(random(100)-50,random(100)-50);
             getch();
             }
           closegraph();
          }
         else { cout<<"error";getch();}
     }
     В программе из листинга 31 определены классы Circle и Rectangle, описы-
вающие графические фигуры, окружность и прямоугольник соответственно. Сов-
падающие свойства этих геометрических фигур вынесены в базовый класс Shape.
Этими свойствами являются –базовая точка фигуры base, определяющая местопо-
ложение фигуры на экране, цвет фигуры color, метод move, перемещающий фигу-
ру по экрану. Необходимо обратить внимание на реализацию метода move. Для
того чтобы переместить фигуру, ее сначала отображаем цветом фона, изменяем
координаты базовой точки фигуры, а затем отображаем цветом фигуры. Такая
процедура перемещения подходит для работы с любой фигурой -–и окружностью,
и прямоугольником, поэтому метод move наследуется классами Circle и Rectangle.
Для отображения фигуры метод move использует метод show. В классе Shape ме-
тод move просто отображает на экране базовую точку фигуры (вообще то, метод
move в классе Shape не должен ничего отображать, поскольку этот класс с точки
зрения предметной области является абстракцией, служащей основой для созда-
ния производных классов, но об абстрактных классах речь пойдет в следующей
главе). В классах Circle и Rectangle метод show отображает соответствующую
геометрическую фигуру. Для правильной работы программы метод show должен
быть объявлен виртуальным, поскольку вызов метода move для объектов классов

                                              76