Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 01.11.2010, 16:44   #1
Juffin
Форумчянин
Форумчанин
 
Аватар для Juffin
 
Регистрация: 05.04.2009
Сообщений: 446
По умолчанию функция, возвращающая экземпляр класса

Предположим, есть функция:
Код:
function Func():TClass;
var cl:TClass;
begin
cl:=TClass.Create;
cl.Set(1,2,3);
Func:=cl;
end;
после этого cl остается в памяти. Если же в конце дописать:
Код:
cl.Destroy;
то все поля класса TClass становятся нулями.
Вопрос - как вернуть правильный экземпляр класса, не засоряя память?
Nobody expects Spanish Inquisition!
Juffin вне форума
Старый 01.11.2010, 17:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вопрос - как вернуть правильный экземпляр класса
Именно так как ты написал.
Цитата:
не засоряя память?
Опиши переменку, в которую будешь объект возвращать:
Код:
var c:TClass;
ей присвой
Код:
c:=func;
поиграйся с ней и... можещь освобождать
Код:
c.Free;c:=nil;
Это и будет нормальное освобождение, неважно где создан объект, важно к чему он прикреплен, есть ли у него переменная, ссылающаяся на него.
I'm learning to live...
Stilet вне форума
Старый 01.11.2010, 17:42   #3
Juffin
Форумчянин
Форумчанин
 
Аватар для Juffin
 
Регистрация: 05.04.2009
Сообщений: 446
По умолчанию

А еще такой вопрос - как правильно удалять объект: Destroy или Free?
Nobody expects Spanish Inquisition!
Juffin вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция возвращающая char Exeil Общие вопросы C/C++ 2 18.10.2010 19:42
Экземпляр класса с.делать доступным везде Casper-SC Общие вопросы .NET 6 08.04.2010 10:55
Функция возвращающая массив babaj Общие вопросы Delphi 8 04.07.2009 17:40
Один экземпляр класса Лубышев Общие вопросы .NET 2 31.10.2008 20:57
Функция возвращающая строку(си++). necky Помощь студентам 1 18.10.2008 18:32