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

Вниз

Вопрос о синтаксисе.   Найти похожие ветки 

 
Демонов Е.В. ©   (2002-10-10 14:25) [0]

Вот такой вопрос. Есть:

type
PType=^TType

TType=record
FType:SomeType
..........
..........
..........
end;

procedure hihi;
var s:PType
begin
new(s);

s.Ftype:=SomeTypeVariable

s^.Ftype:=SomeTypeVariable

Результат одинаковый и даже addr(s.Ftype)=addr(s^.Ftype);
Что это значит или компилятор прочто понимает что хотели ?


 
Внук ©   (2002-10-10 14:27) [1]

С некоторых пор (как только появились переменные типа class)разыменование производится компилятором автоматически, если того требует ситуация.


 
still ©   (2002-10-10 14:30) [2]

здесь судя по всему действительно компилятор типа умный такой.
хотя все эти неявные и подразумеваемые операции - такая мутная вода, что лучше бы уж он глупым оставался.


 
Внук ©   (2002-10-10 14:38) [3]

still © (10.10.02 14:30)
Тогда, уважаемый, Вам бы пришлось при каждом t=MyClass.Create; писать t^.MyFunction; :))


 
ZrenBy ©   (2002-10-10 14:45) [4]

>Внук © (10.10.02 14:38)
А мне такой подход по умолчанию не нравится.
Я предпочитаю, чтобы компилятор делал то,
что я хочу, а не то, что он предполагает.
Хотя бы Warning выдавал, как другие.


 
Внук ©   (2002-10-10 14:49) [5]

ZrenBy © (10.10.02 14:45)
"То, что я хочу" делает только старик Хоттабыч...
Программы работают согласно документации (компиляторы, в том числе).


 
still ©   (2002-10-10 14:55) [6]


> Внук © (10.10.02 14:38)

я был бы не против. Почему в том же CBuilder"е так сделано (Object->Method)? На мой взгляд, если я использую указатель, то и обращаться должен как к указателю.
А таких неявных фишек, пусть даже и описанных в документации на КОНКРЕТНЫЙ КОМПИЛЯТОР (а не на язык), на мой взгляд, должно быть поменьше.


 
Внук ©   (2002-10-10 14:59) [7]

Не спорю. Просто есть желаемое, есть действительное. Паскаль, imho, уже перебарщивает с желанием упростить жизнь начинающим, наоборот, еще более все запутывая. Например, те же операции со строками... Но это уже другая тема :)


 
SVM (Perm)   (2002-10-10 14:59) [8]

Наоборот,это круто! А то надоедает писать Ptr^.Method!
А в CBuilder"е так сделано из-за стандартов и глупого
синтаксиса!


 
still ©   (2002-10-10 15:04) [9]


> SVM (Perm) (10.10.02 14:59)

а begin end не надоело писать из-за глупого синтаксиса?
В C например {} - и всего делов-то.



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
4-69081
Aquaform
2002-09-09 10:40
2002.10.21
Как изменить шрифт


1-68686
Aleksandr
2002-10-10 16:21
2002.10.21
Делфи 7 крышей едет или я? Модуль variants хочет перекомпиляться.


1-68689
AL2002
2002-10-10 19:39
2002.10.21
Сколько будет? В строке.


1-68792
Lamer86
2002-10-09 19:36
2002.10.21
Как зарегистрировать ocx


1-68739
zam2000
2002-10-11 10:20
2002.10.21
Кто работал с Clipboard через API? Как туда положить CF_OEMTEXT