![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ссылки(2)
Женя © (2011-02-11 21:55:00)Удалено модератором
Примечание: Восстановление закрытой ветки
Token (2011-02-11 22:59:00) [21]У Фаронова хорошо было "фактические" и "формальные" переменные.
Женя (2011-02-11 22:57:00) [22]ShowMessage((Copy^).y[0].Name);
- не помогло
я уже пробывал и просто переменную класса передовать)))
я уверен что просто гдето налажал
(Delphi 7 - сам разоименовавает ссылки на класс (дуже если это ссылка на ссылку на сулку класса (правда в С++ такого нету)))
Token (2011-02-11 22:54:00) [23]
> Игорь Шевченко © (11.02.11 22:48) [9]
Хорошо, где определение "ссылки" и "указателя"?
Игорь Шевченко (2011-02-11 22:48:00) [24]
> Потому для ся решил, что ссылка в стек записывается как
> адрес памяти определенного размера, а указатель в стек пихается
> как адрес памяти неопределенного размера.
"Другое открытие. Отчего зимою день короткий, а ночь длинная, а летом наоборот? День зимою оттого короткий, что подобно всем прочим предметам видимым и невидимым от холода сжимается и оттого, что солнце рано заходит, а ночь от возжения светильников и фонарей расширяется, ибо согревается."
http://lib.ru/LITRA/CHEHOW/r_letter.txt
Token (2011-02-11 22:40:00) [25]Потому для ся решил, что ссылка в стек записывается как адрес памяти определенного размера, а указатель в стек пихается как адрес памяти неопределенного размера.
Token (2011-02-11 22:33:00) [26]Для мя ссылки, указатели и разница между ними самая большая прблема )
И. Павел (2011-02-11 22:24:00) [27]
> есть ссылка на переменную класса
> нужно передать ее в функцию
Идентификатор объекта - это уже сама по себе ссылочная переменая. А у вас получается ссылка на ссылку. Тогда, наверное, нужно один раз ее разыменовать: func(a^).
Или в самой функции:
Copy(...
begin
ShowMessage((Copy^).y[0].Name);
Token (2011-02-11 22:21:00) [28]Переменная класса - уже есть укзатель на область памяти. А вот ссылка... Если тебе надо создать экземпляр класса внутри функции, то передавай как ссылку (через var), если с ним надо работать, то "крышечки" убери и передавай как есть. Тебя этот ответ устроит? )))
Женя (2011-02-11 22:15:00) [29]есть ссылка на переменную класса
нужно передать ее в функцию
Token (2011-02-11 22:06:00) [30]А можно словами объяснить задачу?
Женя (2011-02-11 21:58:00) [31]type sparametrs = ^parametrs
Женя (2011-02-11 21:57:00) [32]*
procedure parametr.Copy( Copy: sparametr);
begin
ShowMessage(Copy.y[0].Name);
end;