Почему access violation в конструкторе? Создал такой класс:type
Painter = class
public
constructor Create();
private
sprite: TBitmap;
end;
constructor Painter.Create();
begin
sprite := TBitmap.Create;
end;
Запускаю - ошибка:First chance exception at $005D94B0. Exception class $C0000005 with message 'access violation at 0x005d94b0: write of address 0x00000004'. Process Plan2D.exe (1248)Решение:
Оказалось, объект я тоже назвал painter, когда переименовал прошло. Получается в дельфи объект класса нельзя назвать именем класса.

21 Авг 2019 в 07:04
286 +1
0
Ответы
1

Да, вы правы. В объектно-ориентированных языках программирования, таких как Delphi, название объекта не должно совпадать с названием класса. В вашем случае, объект был назван так же, как и класс (Painter), что привело к конфликту и неопределенному поведению. Переименовав объект, вы избежали этой проблемы и ошибка исчезла.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир