Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



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


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


2-1296906585
AlexIdx
2011-02-05 14:49
2011.05.22
Биты


15-1297062417
И. Павел
2011-02-07 10:06
2011.05.22
Иконка в Delphi


2-1297847287
RWolf
2011-02-16 12:08
2011.05.22
AV в API callback




   Наверх