Не работает функция в копии при копировании объекта - Free Pascal

Узнай цену своей работы

Формулировка задачи:

См. anatolii_5.pas, строка 75. Объект был скопирован, однако функция Erase не работает. Функция объекта настраивается на объект с определенным адресом что ли? Возможно ли это исправить? Нужно чтобы последовательность функций осталась: Move, Erase, Draw. Подскажите пожалуйста, заранее спасибо

Решение задачи: «Не работает функция в копии при копировании объекта»

textual
Листинг программы
  1. type
  2.   TShape = object
  3.   protected
  4.     x, y: Integer; color: Word;
  5.   public
  6.     constructor Init(ax, ay: Integer; aColor: Word);
  7.     constructor CopyFrom(const o: TShape);
  8.     ...
  9.   end;
  10.  
  11. constructor TShape.Init(ax, ay: Integer; aColor: Word);
  12. begin
  13.   x:=ax; y:=ay; color:=aColor;
  14. end;
  15.  
  16. constructor TShape.CopyFrom(const o: TShape);
  17. begin
  18.   x:=o.x; y:=o.y; color:=o.color;
  19. end;
  20.  
  21. ...
  22. var
  23.   a, t: PShape;
  24. begin
  25.   a:=New(PShape,Init(50,50,1));
  26.   t:=New(PShape,CopyFrom(a^));
  27. ...
  28.   Dispose(t);
  29.   Dispose(a);
  30. end.

Объяснение кода листинга программы

  1. Объявлен тип данных TShape, который является объектом.
  2. У объекта TShape есть свойства x, y и color.
  3. Реализованы два конструктора: Init и CopyFrom.
  4. Конструктор Init инициализирует свойства x, y и color.
  5. Конструктор CopyFrom создает копию объекта, инициализируя свои свойства значениями свойств другого объекта.
  6. Объявлены две переменные a и t типа PShape (указатель на объект TShape).
  7. Переменная a инициализируется новым объектом TShape с помощью конструктора Init.
  8. Переменная t инициализируется новым объектом TShape с помощью конструктора CopyFrom, который использует объект a.
  9. ... (код не рассматривает, что происходит с объектами a и t).
  10. Вызов Dispose для объекта t.
  11. Вызов Dispose для объекта a.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы