Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.05.22;
Скачать: CL | DM;

Вниз

Ссылки(2)   Найти похожие ветки 

 
Женя   (2011-02-11 21:55) [0]

Удалено модератором
Примечание: Восстановление закрытой ветки


 
Женя   (2011-02-11 21:57) [1]

*
procedure parametr.Copy( Copy: sparametr);
begin
ShowMessage(Copy.y[0].Name);
end;


 
Женя   (2011-02-11 21:58) [2]

type sparametrs = ^parametrs


 
Token   (2011-02-11 22:06) [3]

А можно словами объяснить задачу?


 
Женя   (2011-02-11 22:15) [4]

есть  ссылка на переменную класса
нужно передать ее в функцию


 
Token   (2011-02-11 22:21) [5]

Переменная класса - уже есть укзатель на область памяти. А вот ссылка... Если тебе надо создать экземпляр класса внутри функции, то передавай как ссылку (через var), если с ним надо работать, то "крышечки" убери и передавай как есть.  Тебя этот ответ устроит? )))


 
И. Павел ©   (2011-02-11 22:24) [6]


> есть  ссылка на переменную класса
> нужно передать ее в функцию

Идентификатор объекта - это уже сама по себе ссылочная переменая. А у вас получается ссылка на ссылку. Тогда, наверное, нужно один раз ее разыменовать: func(a^).

Или в самой функции:

Copy(...
begin
 ShowMessage((Copy^).y[0].Name);  


 
Token   (2011-02-11 22:33) [7]

Для мя ссылки, указатели и разница между ними самая большая прблема )


 
Token   (2011-02-11 22:40) [8]

Потому для ся решил, что ссылка в стек записывается как адрес памяти определенного размера, а указатель в стек пихается как адрес памяти неопределенного размера.


 
Игорь Шевченко ©   (2011-02-11 22:48) [9]


> Потому для ся решил, что ссылка в стек записывается как
> адрес памяти определенного размера, а указатель в стек пихается
> как адрес памяти неопределенного размера.


"Другое  открытие. Отчего зимою день короткий, а ночь длинная, а летом наоборот? День зимою оттого короткий, что подобно всем прочим предметам видимым  и невидимым от холода сжимается и оттого, что солнце  рано заходит, а ночь от возжения  светильников и фонарей расширяется, ибо согревается."

http://lib.ru/LITRA/CHEHOW/r_letter.txt


 
Token   (2011-02-11 22:54) [10]


> Игорь Шевченко ©   (11.02.11 22:48) [9]

Хорошо, где определение "ссылки" и "указателя"?


 
Женя   (2011-02-11 22:57) [11]

ShowMessage((Copy^).y[0].Name);  

- не помогло
я уже пробывал и просто переменную класса передовать)))
я уверен что просто гдето налажал
(Delphi 7 - сам разоименовавает ссылки на класс (дуже если это ссылка на ссылку на сулку класса (правда в С++ такого нету)))


 
Token   (2011-02-11 22:59) [12]

У Фаронова хорошо было "фактические" и "формальные" переменные.


 
Сергей М. ©   (2011-02-11 23:01) [13]


> Token   (11.02.11 22:40) [8]


Ссылка "записывается", а указатель "пихается".
Вот и вся разница. Других разниц не существует.


 
Token   (2011-02-11 23:11) [14]


> Сергей М. ©   (11.02.11 23:01) [13]

Это не определение, и тем более не объяснение. Ведь тут явно суть вопроса ссылка/указатель. Книжек прочитал, из них синтаксис понял, захотел сделать что-то свое. слов в книжках умных много, а что они значат непонятно.


 
Сергей М. ©   (2011-02-11 23:25) [15]


> Token   (11.02.11 23:11) [14]


> не определение, и тем более не объяснение


Ровно так же как и не объяснение тобой разницы между "записать" и "запихать".

Указатель - это "нечто" содержащее информацию о фактическом местонахождении чего-либо.

Ссылка - это точно такая же информация о фактическом местонахождении того же самого чего-либо.

Сослаться на что-либо - это тоже самое что и указать на это что-либо.


 
Token   (2011-02-11 23:33) [16]


> Сергей М. ©   (11.02.11 23:25) [15]


Ну ссылка может быть и на указатель )))
В этом, ИМХО главная проблема )


 
Сергей М. ©   (2011-02-11 23:37) [17]


> Token   (11.02.11 23:33) [16]


> ссылка может быть и на указатель


А по барабану на что она.
Указатель этот есть субъект где-то фактически находящийся - вот на это самое место и "ссылается" ссылка.


 
Token   (2011-02-11 23:37) [18]

А вот указателя на ссылку быть не может )


 
Token   (2011-02-11 23:43) [19]

Для меня ссылка - адрес; Указатель - адрес адреса.


 
Сергей М. ©   (2011-02-11 23:52) [20]

> указателя на ссылку быть не может

Может если ссылка представлена субъектом, имеющим конкретный адрес местонахождения


 
Сергей М. ©   (2011-02-11 23:59) [21]

> Указатель - адрес адреса

Вовсе не обязательно.

Указатель может указывать как на местоположение адреса инф-ции о том где находится искомое "что-то" (косвенная ссылка), так и на непосредственное местонохождение самого "что-то" (прямая ссылка).


 
Игорь Шевченко ©   (2011-02-12 00:05) [22]

указатель и ссылка - это одно и то же, только разное количество букв в словах.


 
Token   (2011-02-12 00:15) [23]


> Сергей М. ©   (11.02.11 23:59) [21]

Вот для косвенной ссылки и придумали - слово "указатель".


 
KilkennyCat ©   (2011-02-12 00:19) [24]

раньше все это называлось косвенной адресацией.


 
Германн ©   (2011-02-12 00:30) [25]

Указатель это просто перевод термина Pointer.


 
KilkennyCat ©   (2011-02-12 01:10) [26]

а "ссылка" - чей перевод?


 
clickmaker ©   (2011-02-12 01:23) [27]

> "ссылка" - чей перевод?

декабриста в Сибирь?


 
Германн ©   (2011-02-12 01:43) [28]

Ну вот наконец полностью разобрались с вопросом!
Ссылка это форма наказания, а указатель - порода собак.


 
KilkennyCat ©   (2011-02-12 01:53) [29]

да, и как всегда, помогли автору. спасибо нам :)


 
Германн ©   (2011-02-12 03:21) [30]


> да, и как всегда, помогли автору

Ну автору я могу посоветовать забыть символы "^" и "@". И переписать код без этих символов. Вполне возможно "всё заработает".


 
Palladin ©   (2011-02-12 06:37) [31]

сломал моск


 
Anatoly Podgoretsky ©   (2011-02-12 09:34) [32]


> Сергей М. ©   (11.02.11 23:01) [13]

Cсылка ссылается, а указатель указывает.



Страницы: 1 вся ветка

Текущий архив: 2011.05.22;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.011 c
15-1297002098
aka
2011-02-06 17:21
2011.05.22
Delphi & Flash


2-1297426351
cross
2011-02-11 15:12
2011.05.22
процедура с параметром или функция


2-1297323108
student22
2011-02-10 10:31
2011.05.22
DLL


15-1297231514
Volodq
2011-02-09 09:05
2011.05.22
Возмещение морального вреда!


15-1296459660
MBo
2011-01-31 10:41
2011.05.22
Embarcadero выпускает Delphi (и Builder) Starter за 200$