![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
передача объекта по ссылке
sydenis © (2007-07-11 12:21:00)Есть класс TMyObject, экземпляр которого я собираюсь передать в процедуру. Какая разница между Proc1(Obj: TMyObject) и Proc1(var Obj: TMyObject)?
StriderMan (2007-07-11 12:54:00) [21]
> А в процедуре стоит проверка, типа если не существует, то
> - создать.
лучше таких конструкций избегать, ИМХО :)
Ega23 (2007-07-11 12:44:00) [22]
> Никакой. Все объекты передаються по ссылке.
Вообще-то разница есть. Допустим во время передачи объекта не существует (Obj=nil). А в процедуре стоит проверка, типа если не существует, то - создать.
В таком случае надо как var передавать.
Во всех остальных - пофиг.
ЮЮ (2007-07-11 12:43:00) [23]Во втором случае в ходе работы процедуры можно заменить Obj на другой объект класса TMyObject, в первом - довольствоваться только переданным Obj - его методами и свойствами
Сергей М. (2007-07-11 12:33:00) [24]
> Какая разница между Proc1(Obj: TMyObject) и Proc1(var Obj:
> TMyObject)?
В 1-м случае передается собственно ссылка на объект, во 2-м - ссылка на переменную, содержащую ссылку на объект (т.н. косвенная ссылка)
tesseract (2007-07-11 12:22:00) [25]Никакой. Все объекты передаються по ссылке.