Объектно-ориентированное программирование



         

Объектно-ориентированное программирование - стр. 85


Второй- Rectangle- имеет метод Build, который строит прямоугольник.

Программа, реализующая все это, выглядит так:

Circle A;

Rectangle B;

Если мы объявим так, то вызывая методы Display, Hid и Movе для объекта А, мы будем работать с кругом, а для объекта В - с прямоугольником.

class GraphicsObject{

protected:

int _x,_y;

void *image;

public:

void Display(int x,int y);

virtual void Build(int x, int y);

void Hid();

void Move(int x, int y);

};

classCircle:virtual public GraphicsObject{

virtual void Build(int x,int y);                    //строит кружок

};

class Rectangle:virtual public GraphicsObject{

virtual void Build(int x, int y);                             // строит прямоугольник

};

Если бы метод Build не был объявлен виртуальным, то при вызове А.Display вызывался бы метод: GraphicsObject::Build(int,int);

Но поскольку Build виртуальный, то вызывается Circle::Build(int,int);

Как же реализуется механизм виртуальных методов? Каждый объект, помимо полей данных, описанных для данного класса, содержит ссылку на таблицу адресов виртуальных методов своего класса. При вызове виртуального метода его адрес извлекается из соответствующей данному объекту таблицы - таким образом вызывается “то, что надо”. Объекты  “таскают” свои виртуальные методы с собой.

3. История развития Турбо - Паскаля

Windows  и Турбо - Паскаль появились одновременно, в 1983 году, однако их пути не пересекались до 1991. По сравнению с версией Windows 3.0 , ранние версии были медленными, со слабыми характеристиками и машинно-зависимыми. Однако Турбо Паскаль сразу же завоевал уважение  и признание программистов не только своей стоимостью 50$ (а Windows - 500$), но и своими возможностями. Паскаль 1984 года - это дискета 360К и работа на машинах с самыми минимальными возможностями.

За эти годы шло совершенствование обоих программных продуктов, и, наконец, к 90 годам обе программы стали вполне зрелыми и работоспособными, имеющими массу приложений для  пользователей и программистов.




Содержание  Назад  Вперед