надо ли заботиться об уничтожении экземпляра объекта

Антон_Паневач 13 апреля 2012  2 049 просмотров
Здравствуйте! будьте так бобры ! Объясните! (то есть надо ли использовать деструктор), если переменная которая ссылалась на этот экземпляр стала ссылаться на другой? т. е. например.
<br />
a:vector;<br />
a:=vector.create(x1,y1);<br />
{вот &quot;а&quot; стало ссылаться на один объект класса vector}<br />
a:=vector.create(x2,y2);<br />
{а теперь &quot;а&quot; стало ссылаться на другой объект класса vector}<br />

удалился ли первый объект класса из памяти? или нет? если нет то как сделать чтобы да))
где прочитать подробно про ООП в delphi/freepascal ? именно про инструменты ООП в этих средах
Написать комментарий…

У вас то же самое?

Асик Сериккулулы опытный9 решений 28 июля 2017
В Delphi все классы являются потомками, по крайней мере, класса TObject, поэтому, для корректного освобождения памяти, необходимо перекрывать деструктор, используя директиву override.
В Delphi прямой вызов деструктора используется редко. Вместо него используют метод Free. Метод Free вначале проверяет существует ли уничтожаемый объект, а затем вызывает деструктор. Этот прием позволяет избегать ошибок, возникающих при обращении к несуществующему объекту.
А вот и книги по Делфи с примерами )
forcoder.ru/delphi/

Знаете, как решить?

Поделитесь способом — он поможет всем, у кого такая же проблема. За полезные решения растёт авторитет.

Отметить текст программы

Похожие проблемы

  • Visual C++
    Как заполнить объект структуры

    Пытаюсь создать функцию с аргументами по умолчанию, но такой аргумент не возможно занести в объект структур D3DCOLORVALUE. При попытках разобраться я понял что конструктора нет (или я не правильно понял, что тоже вероятно так как занимаюсь програмированием недавно). Так вот такой вопрос как можно заполнить структуру ...

    Ждёт ответа 2 199
    добавление символа к строке

    Здравствуйте, недавно начал заниматься c++, такой вопрос - как к строке добавить символ? пишу [code] str1[strlen(str1)] = str2[i]; [/code] - но это не работает? погуглил на эту тему, ничего точного не нашел, подскажите пожалуйста а то уже 2 часа пытаюсь решить проблему

    2 решения 2 707
    работа с большими файлами

    Для работы с файлами я использую функции C: fopen, fread, fwrite, fseek, ftell, fclose. fseek и ftell работают с 32-битными числами, но если файл будет больше 2 ГБ, то будут проблемы. В Visual C++ есть функции _ftelli64 и _fseeki64, но похоже, что это расширение Microsoft. Есть ли какой-то кросскомпиляторный аналог ...

    Ждёт ответа 2 123
  • Разработка под Windows
    Создание шаблона для распарсивания строки времени

    Имеются строки содержащие в себе время к примеру ""Tue Jun 22 16:40:19 +0000 2011" причем +0000 присутствует во всех строках. Хотел перевести все это в QDateTime используя [code] QDateTime::fromString ( const QString & string, const QString & format ) [/code] Есть мануалы по Qt но в них разобраться не смог как ...

    1 решение 2 350
Все похожие проблемы