Форум: "Основная";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];
ВнизСмысл строки 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c