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

Вниз

Смысл строки Type(Object1) := Object2;   Найти похожие ветки 

 
Daniel   (2004-01-31 18:32) [0]

В еод VCL нашел такую строчку TComponent(Reference) := Instance;
Каков ее смысл? Компилятор C++ на это сказал бы Lvalue required.


 
Palladin ©   (2004-01-31 18:39) [1]

Компилятор C++ еще бы много чего сказал попытайся ты откомпилировать паскалевский код. Причем тут он?
Это привидение к конкретному типу для присванивания. Как ты можешь заметить Reference передается по ссылке и не имеет типа.


 
Daniel   (2004-01-31 19:10) [2]

Указатель ведь есть указатель, размер его и значение всегда одинаковы. Даже если переменная передается по ссылке, её тип подобное приведение не изменит!


 
Palladin ©   (2004-01-31 19:36) [3]

Приведение типов, как должно быть Вам известно, не является изменением типа, это первое, второе, Reference может и не быть указателем, он неопределенного типа, таким образом переменную можно лишь передать только по ссылке. Что произойдет если вдруг Reference в вызывающем эту функцию коде будет иметь тип array [1..5] of byte;? Произойдет присваивание первых четырех элементов массива соответствующим байтам значения Instance.


 
Palladin ©   (2004-01-31 19:38) [4]

Естественно это опасный способ, практически обман компилятора, и контроль за корректным использованием полностью ложится на программиста.


 
Daniel   (2004-01-31 22:36) [5]

Спасибо, уяснил.



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

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

Наверх




Память: 0.47 MB
Время: 0.021 c
3-29210
RDen
2004-01-20 11:09
2004.02.10
Два вопроса: как узнать существует ли индекс у таблицы ?


1-29389
неважно
2004-02-01 18:42
2004.02.10
Как создать одну процедуру на несколько объектов?


1-29412
Фдуч
2004-01-31 17:30
2004.02.10
Как добавить в treeview столбец с checkbox ами для item


8-29484
dzmitry_
2003-10-07 12:33
2004.02.10
векторный редактор


3-29228
Pat
2004-01-20 23:09
2004.02.10
Excel+mdb