Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

передача объекта по ссылке


Страницы:   1 2

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]

Никакой. Все объекты передаються по ссылке.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо