Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
ВнизВозможно интересный вопрос по указателям ) Найти похожие ветки
← →
Ksenom © (2006-05-07 22:32) [0]Столкнулся с непонятной мне вещью.
Я создаю свой типtype
TDat = record
Nod :byte;
Id :integer;
Value:Variant;
end;
Далее где то в коде делаю как положенноDat:^TDat
Далее как и положенноNew(Dat)
А теперь непонятное!
Dat.id:=123;
Dat^.id:=123;
Обе строки работают и более того аналогичным образом можно осуществлять доступ к значения.
Почему?
В книгах я читал что второй вариант правельный, но работает почему то и первый...
Буду благодарен если мне разъеснят этот вопрос.
← →
Desdechado © (2006-05-07 22:49) [1]> Обе строки работают
т.е выполняется присваивание?
а как насчет дальнейшей работы с указателем? не плюется?
← →
jack128 © (2006-05-07 22:50) [2]Ksenom © (07.05.06 22:32)
В книгах я читал что второй вариант правельный, но работает почему то и первый...
Потому борланды некоторое время назад расширили синтаксис.
← →
Sergey Masloff (2006-05-07 22:53) [3]А чего разъяснять. Это ж рекорд. Для упрощения синтаксиса когда ты пишешь
Dat.id:=123;
реально все равно выполняется
Dat^.id:=123;
Ну просто в компилятор встроено.
← →
Sergey Masloff (2006-05-07 22:55) [4]Desdechado © (07.05.06 22:49) [1]
>а как насчет дальнейшей работы с указателем? не плюется?
А чего ей плеваться? В рекордах методов не бывает же. Или я отстал и в паскале эту фигню уже разрешили?
← →
Джо © (2006-05-07 22:59) [5]> В рекордах методов не бывает же. Или я отстал и в паскале
> эту фигню уже разрешили?
Да, в D2006 уже есть.
← →
Sergey Masloff (2006-05-07 23:05) [6]Джо © (07.05.06 22:59) [5]
>Да, в D2006 уже есть.
Прекрасно. Я рад что остановился на семерке. Дальнейшие ходы только укрепляют меня в правильности решения.
← →
Ksenom © (2006-05-07 23:06) [7]А в D2005? Я на нём творю )
Не плюётся... я тоже сначала подумал что упрощение, но как то непривычно )
← →
Ksenom © (2006-05-07 23:08) [8]Sergey Masloff, эксперементруй... D2005-2006 номного удобнее...
← →
Kolan © (2006-05-07 23:09) [9]Джо © (07.05.06 22:59) [5]
Правда что-ли? А зачем это надо? Есть же классы. И как это выглядит?
← →
Sergey Masloff (2006-05-07 23:12) [10]Ksenom © (07.05.06 23:08) [8]
Спасибо. Ничего удобного там (в 2005) нет.
Для Win32 меня прекрасно устраивает семерка, для .NET использовать Delphi безумие.
← →
Джо © (2006-05-07 23:47) [11]> [9] Kolan © (07.05.06 23:09)
> Джо © (07.05.06 22:59) [5]
> Правда что-ли? А зачем это надо? Есть же классы. И как это
> выглядит?
type
TMyRecord = record
A: Integer;
procedure B;
end;
и аналогичная классам реализация.
Иногда удобно. Я часто использую как своего рода "конструкторы" для записей, реализацию проверки на равенство, и в тому подобных случаях.
← →
Kolan © (2006-05-08 00:29) [12]Ухты действительно. Только в чем преимушества/необходимость таких вешей так и не понял... :)
А где взять список нововведений с примерами?
← →
Джо © (2006-05-08 00:54) [13]> А где взять список нововведений с примерами?
Тут статья:
http://bdn.borland.com/article/0,1410,33411,00.html
← →
jack128 © (2006-05-08 00:55) [14]Kolan © (08.05.06 0:29) [12]
Только в чем преимушества/необходимость таких вешей так и не понял... :)
приемущество записи перед классом в том, что запись не нужно создовать, а самое главное - не нужно УНИЧТОЖАТЬ.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.014 c