Законченная программа
Категория реферата: Рефераты по информатике, программированию
Теги реферата: ответы по математике, российская федерация реферат
Добавил(а) на сайт: Кинжаев.
Предыдущая страница реферата | 1 2 3 4 5 6 7 | Следующая страница реферата
virtual void move(int, int) {}; // переместить
};
Идея состоит в том, что расположение фигуры задается с помощью move(), и фигура помещается на экран с помощью draw(). Фигуры можно располагать относительно друг друга, используя понятие точки соприкосновения, и эти точки перечисляются после точек на компасе (сторон света). Каждая конкретная фигура определяет свой смысл этих точек, и каждая определяет способ, которым она рисуется. Для экономии места здесь на самом деле определяются только необходимые в этом примере стороны света. Конструктор shape::shape() добавляет фигуру в список фигур shape_list. Этот список является gslist, то есть, одним из вариантов обобщенного односвязанного списка, определенного в #7.3.5. Он и соответствующий итератор были сделаны так:
typedef shape* sp;
declare(gslist,sp);
typedef gslist(sp) shape_lst;
typedef gslist_iterator(sp) sp_iterator;
поэтому shape_list можно описать так:
shape_lst shape_list;
Линию можно построить либо по двум точкам, либо по точке и целому. В последнем случае создается горизонтальная линия, длину которой определяет целое. Знак целого указывает, каким концом является точка: левым или правым. Вот определение:
class line : public shape {
/*
линия из "w" в "e"
north() определяется как ``выше центра
и на север как до самой северной точки""
*/
point w,e;
public:
point north()
{ return point((w.x+e.x)/2,e.ydraw();
screen_refresh();
}
И вот, наконец, настоящая сервисная функция (утилита). Она кладет одну фигуру на верх другой, задавая, что south() одной должен быть сразу над north() другой:
void stack(shape* q, shape* p) // ставит p на верх q
{
Рекомендуем скачать другие рефераты по теме: шпаргалки теория права, понятие курсовой работы.
Предыдущая страница реферата | 1 2 3 4 5 6 7 | Следующая страница реферата